Requests for comment/Configuration interface

As part of the configuration overhaul, we want to move configuration out of the global scope, and instead have it be obtained via Config objects. This page documents the interface that was added to MediaWiki to handle accessing of configuration settings.

Interface
This is the interface that was merged into core in 1.23 and refactored in 1.24:

There are currently three Config implementations in core:
 * GlobalVarConfig - reads from $GLOBALS and only implements Config
 * HashConfig - reads from an internal array, implements both Config and MutableConfig
 * MultiConfig - takes an array of Config objects, and reads from them with fallback logic. It only implements Config

Implementation
We have a (yes, to get rid of globals we must add one), which allows for core and extensions to register their config objects. The 'main' config object is used by MediaWiki core. Currently  initializes and provides core's Config object, but it should be moved to WebStart.php so it is available when initialization happens.

We are also removing the "wg" prefix from configuration settings during the process, as they were really only needed to namespace configuration settings from all other global variables.