### Is there an existing issue for this?

- [X] I have searched the existing issues

### Current Behavior

CopyObject API does not check precondition headers such as `x-amz-copy-source-if-modified-since`. Instead it seems to always copy the object.

### Expected Behavior

The API should return a 412 response with content similar to:

```
<Error><Code>PreconditionFailed</Code><Message>At least one of the pre-conditions you specified did not hold</Message><Condition>x-amz-copy-source-If-Modified-Since</Condition><RequestId>14HR9PXJRG5B1GR5</RequestId><HostId>HztBs2jYea1fzzPWo1JWy33NQJqo1S1IsK62rkbnVEI04PnGNCi8sPVrichGQxH3FQwLA2RIyF4=</HostId></Error>
```

### How are you starting LocalStack?

With a docker-compose file

### Steps To Reproduce

#### How are you starting localstack (e.g., `bin/localstack` command, arguments, or `docker-compose.yml`)

    docker run localstack/localstack

#### Client commands (e.g., AWS SDK code snippet, or sequence of "awslocal" commands)

```
aws s3  --profile localstack --endpoint-url http://s3.localhost.localstack.cloud:4566 \
  ls s3://net-amazon-s3-test/Makefile.am
2023-01-25 10:47:40        537 Makefile.am

aws s3api copy-object --copy-source net-amazon-s3-test/Makefile.am --key Makefile.am.2 \
  --bucket net-amazon-s3-test2 --profile localstack --endpoint-url http://s3.localhost.localstack.cloud:4566 \
  --copy-source-if-modified-since "Wed, 25 Jan 2023 16:16:27 GMT"
{
    "CopyObjectResult": {
        "ETag": "\"46ada9d1fe8f8a311ff4504c226e061c\"",
        "LastModified": "2023-01-25T16:18:43+00:00"
    }
}
```

### Environment

```markdown
- OS: penguin
- LocalStack: latest
```


### Anything else?

_No response_
import time
from io import BytesIO
from operator import itemgetter
from typing import TYPE_CHECKING
from urllib.parse import SplitResult, parse_qs, quote, urlencode, urlparse, urlunsplit
from zoneinfo import ZoneInfo
import boto3 as boto3
import pytest
import 
import xmltodict
from boto3.s3.transfer import KB, TransferConfig
from botocore import UNSIGNED
from botocore.auth import SigV4Auth
from botocore.client import Config
from botocore.exceptions import ClientError
from localstack import config, constants
from localstack.aws.api.s3 import StorageClass
from localstack.config import LEGACY_S3_PROVIDER, STREAM_S3_PROVIDER
from localstack.constants import (
    LOCALHOST_HOSTNAME,
    S3_VIRTUAL_HOSTNAME,
    SECONDARY_TEST_AWS_ACCESS_KEY_ID,
    SECONDARY_TEST_AWS_REGION_NAME,
    SECONDARY_TEST_AWS_SECRET_ACCESS_KEY,
    TEST_AWS_ACCESS_KEY_ID,
    TEST_AWS_SECRET_ACCESS_KEY,
)
from localstack.services.awslambda.lambda_utils import (
    LAMBDA_RUNTIME_NODEJS14X,
    LAMBDA_RUNTIME_PYTHON39,