google: delete original after successful rename

In GDrive, filenames aren't unique, and directories are just
special files - so you can have multiple files with the same
name, multiple directories with the same name, and even files
with the same names as directories.

OC doesn't handle this at all, though, and just wants to act
as if file and directory names *are* unique. So when renaming,
we must check if there's an existing object with the same
file or directory name before we commit the rename, and
explicitly delete it if the rename is successful. (Other
providers like dropbox do the same for files, but intentionally
don't do it for directories; we really need to do it for
directories too.)

A good way to observe this is to run the storage unit tests
and look at the state of the Drive afterwards. Without this
commit, there will be several copies of all the test files
and directories. After this commit, there's just one of each.

We can't just say "hey, Drive lets us do this, what's the
problem?" because we don't handle multiple-objects, same-name
cases - getDriveFile() just bails and prints an error if it
searches for the file or directory with a given name and gets
multiple results.
Dont return cached date in shared cache when the file doesn't exist
Add requesttoken to base template

Potentially fixes https://github.com/owncloud/core/issues/12580
Fix permissions
Use httphelper and cache response even when it empty
Test OC\Updater::check
Add unit test for contactsmanager
Use PHPUnit mocks
Mock interface
Remove config file
introduce alt text for rename icon - fixes #12067
Fix tests. Add two more test cases
translated saved message in files external
Skip headers that can not be split
Add getTagsForObjects in ITags

Returns the list of tags that are set on the given object ids.
Extract  interaction with config.php into SystemConfig

* introduce SystemConfig to avoid DI circle (used by database connection which is itself needed by AllConfig that itself contains the methods to access the config.php which then would need the database connection - did you get it? ;))
* use DI container and use that method in legacy code paths (for easier refactoring later)
* create and use getSystemConfig instead of query() in DI container
@deprecated messages for \OCP\Config and \OCP\AppConfig
use old methods and redirect in deprecated methods
introduce proper interface for deleteAppValue
introduce deleteAllUserValues