Fixed #20488 -- Added copy and move methods to the storage API

* implemented these methods in the default FileSystemStorage
* fix issue with storage tests: each test from FileStorageTests
   was run twice (when inheriting from a TestCase class all test_
   methods are ran in the subclass as well)

Previous incarnations of the same PR:

https://github.com/django/django/pull/1206
https://github.com/django/django/pull/2664

Also, this will raise a `FileExistsError` on Python 3 which is better than `ValueError` in my opinion.