No File elements without corresponding datastream

Remove all <File id="..."> elements from Qucosa XML output if there is no
datastream corresponding to the id attribute.
Move temporary files to target location
Don't allow POST of File elements without TempFile
Fix removing DOM elements

Iteration with `for` over NodeList is not invariant.
Prepare test for File element removal
Copying files to document folder
Fixes typo in error message
Add version property for Elasticsearch dependency
Fix: All datastreams get purged on update
Fix: File location in datastream is URI, not a path
Fix: File element IDs must not be "0"

Otherwise the PHP frontend will interpret "0" as no attribute value :-/
Fix: Uploading files without label
File element label change also changes datastream label
Adds renaming files on the filesystem

...along with a bunch of refactoring.
Fix: Deletes all files if no File element present
Adds HashValue to File elements mapping to datastream hash value
Add content type detection for referenced files
Adds FileSize Element to FileElements
Adds changing Frontdoor visibility sets datastream state
Adds Apache access restrictions for attachments