i18n documentation - added note for caching in multi language modules
Update datamodel.md to use an array argument to Enum instead of the more error-prone string

The previous argument to the Enum was: 
"Status" => "Enum('Active, Injured, Retired')"

This would cause issues where the 'Injured' and 'Retired' statuses would actually be stored in the database as ' Injured' and ' Retired' respectively, at least in 3.0.

Using an array() to specify the enum, and using normal array syntax (albeit within a string) is less likely to cause errors.
fixed wrong ID output for many_many and has_many relations
Unit tests for Email

It's not much, but it's a start
Remove large left margin on field description within cms-content-tools
Merge pull request #2511 from kinglozzer/email-tests

Unit tests for Email class
Merge pull request #2498 from jkempff/fix-1

fixed wrong ID output for many_many and has_many relations
Merge pull request #2495 from madmatt/patch-1

Update datamodel.md to use an array argument to Enum instead of the more...
GridField fragment docs
Merge pull request #2371 from chillu/pulls/gridfield-fragment-docs

GridField fragment docs
Change default message to be credential agnostic.
Style destructive actions destructively
Load tree parent nodes if non-existant

This edge case can occur when a large tree is cached in HTML already,
without any nodes expanded via ajax. If a new node is added with
a parent that's not existant, it was simply placed on the root node.
This is a display bug, a full CMS refresh fixes it.

Fixes a related bug where tree causes (view) duplicates,
where the same node is rendered twice. This was due to the whole
subtree being refreshed (including the new node) through jstree's
built-in "open"/"select" events, while at the same time
creating a new node through updateNodesFromServer() callbacks.

Also added a global tree loading indication to make it clear
that the tree is still processing.

See https://github.com/silverstripe/silverstripe-cms/issues/872
Merge pull request #2523 from wilr/agnosticloginmsg

Change default message to be credential agnostic.
BUGFIX i18n module load order in i18n::include_by_locale()

The "project" module (normally mysite) is considered with the highest priority. Yet, the project's i18n is loaded first and cannot overwrite existing translations. I've added a array_reverse(), so the iteration keeps the translation of the module with the highest priority.

Old $sortedModules: mysite, (other_modules,) cms, admin, framework.
New $sortedModules: framework, admin, cms, (other_modules,) mysite.
BUG: Fix tab state not being restored due to incorrect selector.

Closes #2321.
Add backwards compatibility for has_extension
Merge pull request #2525 from chillu/pulls/tree-node-parent-refresh

Load tree parent nodes if non-existant
Correct some incorrect PHPDoc definitions.
Merge pull request #2531 from ajshort/pull-5

Correct some incorrect PHPDoc definitions.