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.
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
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