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)
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.
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
Merge pull request #2351 from hafriedlander/fix/ie8brokenfonts

FIX webfonts in preview iframe breaking admin fonts
Merge pull request #2363 from jbridson/patch-8

BUGFIX: fixed grammatical errors and formatting issues
Default TreeDropdown to "Title" search if $labelField isn't in DB

This is a workaround in order to ensure the field stays operational
for SiteTree and File records with the new $showSearch=true default.
Previously it was necessary to use setSearchCallback(), otherwise
the SQL query would fail. One limitation to keep this change generic
is that "MenuTitle" won't be used to search, since its SiteTree specific,
while the "Title" and "Name" fields are generally regarded as
model conventions (e.g. they're used in DataObject->getTitle() as well).

See https://github.com/silverstripe/silverstripe-framework/pull/2364
FIX Correct Zend_Locale fallbacks in i18n/DateField/DateTimeField

Due to the recent change of translations to transifex, some
locales changed their names, which prompted a fix to
i18n::get_available_translations() (see 00ffe7294).
This caused a regression where short locales are determined
from the YAML file names (e.g. "en"), but weren't matched up
with fully qualified locales from get_available_translations() (e.g. "en_US").
Since this list is used in the admin/myprofile dropdown for the Member.Locale value,
it didn't match up with any entries and defaulted to the first one ("Africaans").

Note that the behaviour of admin/myprofile is still a bit weird:
It defaults the locale on new members to the one set for the current administrator.
So if a site defaults to en_US in _config.php, but the admin happens to view
his backend in de_DE, all members he creates default to de_DE as well.

Thanks to @tractorcow for contributing and peer reviewing!
"edit" form expansion in AssetUploadField

Form wasn't expanding because of fixed heights. Backported fix from 3.1.
FIX: Fixes #2389
- Prevent circular references in `GridFieldAddExistingAutocompleter` when linking DataObjects whose ID matches the current object to which the gridfield is attached.
FIX: Modified fix for #2389 to ensure existing tests pass.
Update 2-extending-a-basic-site.md

Fixed a few wording issues and added some clarity to links eg: Tutorial One (Building a basic site)
Count, not Length
BUG: TreeDropdownField remove call to get value on search

This call was placing the id of the currently selected record into the
search box. Related to
https://github.com/silverstripe/silverstripe-framework/commit/93ea066f53
d5d2b2a19cf0dd2e9479a3fc5796f7
Merge pull request #2390 from phptek/2389

Prevent circular refs in `GridFieldAddExistingAutocompleter` when linking DataObjects whose ID == current object's ID
Merge pull request #2373 from chillu/pulls/treedropdown-searchfield-default

Default TreeDropdown to "Title" search if $labelField isn't in DB
Merge pull request #2400 from jbridson/patch-9

Update 2-extending-a-basic-site.md