API Reverse config extra statics control flow

Config system used to provide an add_static_source method, which was intended for
use by Extensions to add statics. But extensions for a class arent initialised
until at least one instance of that class is created, so before that the
Config system didnt include values from extensions

This patch reverses the control flow, so that the Config system explictly asks
each Object for its additional config sources via the new method
get_extra_config_sources. This method returns an array that can contain
string names of classes and also raw associative arrays.

The developer visible change is that Extension#add_to_class has been
deprecated. Instead there is a new method, get_extra_config, which has
the same method signature but needs to guarantee that it doesnt
cause side effects. Additionally there is no need to call
parent::get_extra_config - this is handled automatically.
Added default sort to test data for better cross-db performance.
BUGFIX: Ensure that all_versions are sorted explicitly for better cross-db behaviour.
BUGFIX: Add double quotes to index columns for more reliable DB-schema management.
BUGFIX: Ensure that subtracting a sorted DataList works.
BUGFIX: Fix Versioned's stage_unique mode on PostgreSQL.
FIX Removes version checking for LSB in Object::static_lookup()

Late static binding was added in PHP 5.3, not 5.4. As such, the check for 5.4
and then fallback to Reflection isn't needed.
Updated translations
Merge pull request #734 from silverstripe-rebelalliance/trac/7799

API Reverse config extra statics control flow
i18n for "select an anchor" string (see #7798)
i18n for CMS section titles (see #7798)
i18n for GridField pagination footer (see #7798)
i18n for file type descriptors (see #7798)
APICHANGE: Changed behaviour of HTTP_Request::params to include route table params (as per 2.4 behaviour, see FIX: below).
ADDED: HTTP_Request::params() to retrieve all (shifted) params used in the request
FIXED: Issue where route-table level arguments would not be accessible without using non-deprecated API.
ADDED: Test case to test the above items
UPDATED: Extended Director::test to allow for the retrieval of the request object
UPDATED: Deprecated notice on Director::urlParam and Director::urlParams
REMOVED: Unused variable
FIXED: Coding convention conformity
FIXED: Error in test case deprecation
BUG: open ticket 7812 correcting filter syntax on a DataObject used by function updatetreenodes
FIX Config frag could only have one before or after rule

You should be able to specify multiple before and after rules in
a config fragment. This was intended to be a comma seperated string
but that wasnt being split properly

Now if you provide a comma seperated string it is split properly,
but you can also provide an array, which is actually cleaner
FIX Config wasnt filtering wildcards properly

When specifying a specific before rule and a wildcard after rule (or
vice versa), the config system was filtering out any fragment
from the list of fragments that matched the wildcard if it matched
_any_ componenet of the specific rule, not all of them.

Fixed, and added handling of two semi wild-card rules, where a
rule with less wildcards wins over a rule with more.

See http://open.silverstripe.org/ticket/7765 for more
NEW Allow debugging of config cyclic errors

It is possible to specify before and after rules on config fragments
that conflict - A before B and B before A isnt possible to solve.

This used to just throw an error with no way to debug. Now if you
specify debug as a GET parameter and the site is not in live mode
youll get a basic dump of the remaining DAG graph
Add some basic tests for ConfigManifest#relativeOrder