Add functional tests

Basic functional tests for testing with a Swift all in one (SAIO)
installation.
Increase waitress setting max_request_body_size to 5GiB

Python waitress limits the body size to 1GiB by default, thus
uploading of larger objects will fail if this value is not
increased.
Please note that this value should be increased if your Swift
cluster supports uploading of objects larger than 5GiB.
Don't use a locking manager

Using a locking manager avoids uploading of not yet existing
objects. Since Swift supports no locking itself a locking
has no benefit and creates a false sense of security.
Fix copy/move to other container
Fix etag/creation date

Clients that use HTTP headers IF_MODIFIED_SINCE and IF_NONE_MATCH
failed due to some wrong defaults for non-existing objects. Etag
and creation date should be None if they are not existing.
Avoid GET when initialising DownloadFile

Just do a HEAD when initialising a DownloadFile object and execute
a GET only when reading from the object starts.
Flake8 fix

No change in functionality, only fixing flake8 related issues:

- using only one import per line
- adding missing copyright headers
- fix except...
- use correct file encoding
Add simple test scenario using davfs2