Implement EZP-20321: Cluster support in FieldTypes

This PR implements cluster support for binary FieldTypes (Image, BinaryFile, Media).

Most of the implementation is in `eZ\Publish\Core\IO`. FieldTypeStorage implementations use `IO\IOService`, that uses an `IO\Handler` implementation. Legacy storage is handled by `IO\Handler\Legacy`, while tests are done using `IO\Handler\InMemory` and `IO\Handler\Filesystem`.

Tasks:
- [x] Fix the remaining issue in ImageStorage::internalAcceptValue when testing file existence
- [x] Do real life tests
- [x] Add `eZ/Publish/Core/IO/Handler/Legacy/FileResourceProvider/eZDFSFileHandler.php`
- [x] Fix scope handling in IO\Handler\Legacy (note: should be short since we only store binary files, not cache)
- [x] Adapt FieldType: BinaryBase
- [x] Adapt FieldType: Image
- [x] Adapt FieldType: BinaryFile
- [x] Adapt FieldType: Media
- [x] Refactor MetaData handling
- [x] Implement ImageSize metadata handler
- [x] Remove `IOService` from `API`, implementation goes to `Core`
- [x] Remove references to `LegacyKernel` in `IOService`
- [x] Make FieldType\FileService use IOService
- [x] Remove the FileService interface
- [x] Merge cluster implementation from `Core\FieldType\FileService\LegacyFileService` and `Core\IO\Legacy\LegacyHandler.php`
- [x] Adapt metadata handling to work with FileService/IOService
- [x] Refactor MimeTypeDetector
- [x] Adapt tests
- [x] - Check if `eZ\Publish\API\Repository\Tests\Stubs\IOServiceStub` still makes sense
- [x] Refactor IO Handlers to `eZ\Publish\Core\IO\Handler`
- [x] Remove ctime from IOService
- [x] Fix API integration tests
- [x] - BinaryFile
- [x] - Media
- [x] - Image
- [x] Make sure tests don't remove var/files/.keep
- [x] Fix issues in Travis runs of phpunit-integration-legacy.xml