FIX: GridField button styling

Remove all top/bottom margins from buttons and apply to GridFieldButtonRow component. Ensure that all buttons are added to a suitable GridFieldButtonRow in ModelAdmin, SecurityAdmin and Group.
FormFields now allow setting of extra CSSClasses en masse

Each CSS class passed in to `addExtraClass` or `removeExtraClass` will be set as their own key in the `extraClasses` array

Also make `Form` consistent with `FormField`
Adding tests to `FormField` and `Form` for extra classes

Added tests that were missing from `Form` and ones for my new logic
FIX Empty Datefield with defined min or max has non-object error thrown

When submitting a Datefield with no value but with a min / max config date, the validate() function attempts to access a function on $this->valueObj (which is a non-object)
FIX: wrong class name being returned

This resulted in an error since the returned class name did not exist.
Note that this only happened when someone subclassed GridFieldDetailForm
and did not subclass GridFieldDetailForm_ItemRequest.
FIX Avoid infinite loops on ?isDev=1 and Deprecation class

If any of the functionality triggered by Director::isDev()
was causing deprecation errors, the system would go into
an infinite loop. Since the only way to cause this is the DB
checking functionality, we disable that for Deprecation.
Side effect of this change: You can't show deprecation notices
on a live site by forcing the session into dev mode.
API Disable discontinued Google Spellcheck in TinyMCE

Replaced by browser-based spellchecking if available (Chrome, Firefox),
with instructions on how to use PSpell as an alternative.
API Change: Make GridFieldConfig objects decoratable

This change promotes GridFieldConfig objects to first-class Object descendants, making them extendable through the decorator pattern.

Relevant discussion in the dev group: https://groups.google.com/forum/#!topic/silverstripe-dev/Z6tu1k05ZmA
Validate 'archiveDate' user data in Versioned

Not a security issue as such, since the user input is sanitized
before being used in Versioned->augmentSQL(). But it shouldn't
reach the session state either, since that's commonly assumed
to be sanitized data, and it leaves unnecessary room for error.

strtotime() has fairly loose validation rules around dates,
but its a good "first line of defence".
Returning 404 on /Security, instead of Controller.ss template

We shouldn't expose unsolicited content on public URLs,
mainly because it impacts SEO.
Added link to translation CI
Return jQuery deferred object from LeftAndMain's loadFragment.
FIX Make sure that debug always shows up first
Fix typo in form method name.
Update ImagickBackend.php
BUGFIX: fixed grammatical errors and formatting issues
BUG Fix regression in IE no-cache https file downloads.

Currently IE6-8 will refuse to download files over HTTPS with default
Framework settings.

Currently the HTTP::add_cache_headers competely overrides Cache-Control
headers on each request, so there is no way to inject custom headers
from the API-consuning methods.

Also of note: adding no-store header also fixes the issue but will
prevent proxies from caching the request body (which they do when using
no-cache). So the setting max-age to some low number is a better choice
here.
BUG Cached images stored in wrong folder

If multiple image manipulations are performend the resulting cached image is stored in assets/_resampled because the cached version of the image has no ParentID, which cacheFilename needs to set the correct path.
Merge pull request #2356 from mateusz/ie-download-fix

BUG Fix regression in IE no-cache https file downloads.
FIX webfonts in preview iframe breaking admin fonts

In IE8, when a page in the preview iframe uses a web font (not just
references it in CSS, but actually has glyphs present in the page),
the fonts in the containing admin interface will become corrupted
(display as all squares) until the mouse moves.

This commit uses the technique described at
http://stackoverflow.com/questions/9809351/ie8-css-font-face-fonts-only-working-for-before-content-on-over-and-sometimes#10557782
to cause the admin panel to re-calculated all it's fonts
after the preview iframe has loaded, fixing the glitch