Emulate touch() for backends that don't support it

Adds a second mtime column to the file cache table, one column represents the mtime as it is on the storage and is used for detecting update on the storage.

The other mtime is exposed trough the filesystem api's

This allows setting the mtime in the filecache without setting it on the storage without running into problems later on.

@MTGap @DeepDiver1975 @dragotin 

PS. this PR requires merging https://github.com/owncloud/core/pull/1581 or temporary commenting out the ```file_map``` table from db_structure.xml atm due to database upgrade issues with that table.