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
add @deprecated messages
use old methods and redirect in deprecated methods
migrate AllConfig app related methods to DI
migrate \OC\AllConfig to \OCP\IConfig
replace all occurences of OC_Preferences in core

* replace by call to the DI container
drop unused isDebugMode and setDebugMode of OC_Config
fix base.php for not installed systems
re-init the database connection after autoconfig is loaded - otherwise SQLite will break
drop unused OC_Preferences::getUsersForValue
drop unused OC_Preferences::deleteApp
Refactoring of OC_Preferences to AllConfig

* keep old static methods - mapped to new ones and deprecated
* removed deleteApp because it is unused
fix typo and fix possible issues of the change of the default value
introduce preCondition for setUserValue to provide atomic check-and-update
make AllConfig unit tests more robust against not cleaned up environments
Workaround to fix the too early init dilemma

* this needs to be properly fixed by a proper organisation of the base.php
* introduced fixDIInit() in AllConfig that moves the injection
  of DatabaseConnection to a later point in time
* problems mostly because of the autoconfig setup
reduce OC_Preferences and OC_Config usage

* files_encryption
* files_versions
* files_trashbin
* tests
* status.php