ENHANCEMENT: Move GridField buttons out of table (fixes 7213)

* Added a separate component to grid field to hold buttons.
* Updated templates for changes
* Updated comments
ENHANCEMENT: Make GridFieldButtonRow more adaptable

* Add ability to choose where to put buttons (in buttonRow, toolbar
header, etc)
* Adjust styles to take these changes into account
ENHANCEMENT: Make GridFieldAddNewButton Content more specific

* Alter Grid Field "Add New" Button to take the name of the table (i.e.
"Add Member")
* Alter table names in security section to be singular so the button
text makes sense
BUGFIX: add missing selectors and namespace qualifiers
Merge pull request #475 from mateusz/entwines4

BUGFIX: add missing selectors and namespace qualifiers
BUGFIX: add missing onunmatch
Merge pull request #476 from mateusz/entwines4

BUGFIX: add missing onunmatch
BUGFIX Fixed missing comma in LeftAndMain.AddForm
BUGFIX Fixing incorrect arguments to submitForm() in
LeftAndMain.AddForm.js
ENHANCEMENT visual enhancements, cms tabs, main menu drop shadow adjusted, actions panel top gradient replaced
ENHANCEMENT tabs text-shadow direction change, improve visibility for IE
BUGFIX: CMS tabs were hidden in ie7, changed css to make them appear far right
ENHANCEMENT gridfield colours simplified to use base colours, css tidy up around actions & icons
ENHANCEMENT gridfield styling improvements, asset admin style improvements
BUGFIX Ensure that CMSMain rule doesn't override the CMSPagesController
rule in AdminRootController::add_rule_for_controller()
MINOR Using Config system instead of Director::addRules() in tests
MINOR Removed getitem allowed action, this method no longer exists in LeftAndMain
BUGFIX Versioned's constructor doesn't provide suitable defaults. Previously a bug/feature in singleton, where it would pass null,true as params to strong_create, which would then get passed through as params to Versioned's constructor, meant that the code still executed fine (as  was set to something that wasn't an array, so the null and true were instead taken as args). The fact that the usage of singleton(Versioned) never really used the classes code, purely for value lookup, meant that this never propagated errors. I've now switched singleton() to use the injector for retrieving values, which means these dud values are no longer passed through

CHANGE Given that Config::inst is an implementation of the singleton pattern itself, I've removed the extra call to singleton(). A side effect of this is that it gets around a possibly nasty circular reference with the dependency injector (which relies on the config object); in future, this dependency structure should really be structured from the DI directly.

MINOR Change singleton and strong_create to use dependency injector
Merge pull request #477 from nyeholt/injector_bugfixes

A few bug fixes and changes to make the injector play better with existing code.
Revert "BUGFIX Versioned's constructor doesn't provide suitable defaults. Previously a bug/feature in singleton, where it would pass null,true as params to strong_create, which would then get passed through as params to Versioned's constructor, meant that the code still executed fine (as  was set to something that wasn't an array, so the null and true were instead taken as args). The fact that the usage of singleton(Versioned) never really used the classes code, purely for value lookup, meant that this never propagated errors. I've now switched singleton() to use the injector for retrieving values, which means these dud values are no longer passed through"

This reverts commit 5eaca340b486a2a29d7096220c3d1cabb2d6645f.