FIX: <% if Link %> wasn't working

Since ViewableData was returning a casting helper for Link, but DataObject was
only using $this->$fieldname to set values on that casting helper, you could
not use <% if Link %> (or <% if $Link %>) in your templates because Link is not
a field, and thus had no value to be set on the casting helper, causing
hasValue to think that there was no value.  Since DataObject->dbObject says that
"it only matches fields and not methods", it seems safe to have it call db(..)
to get the field spec, and not call ViewableData->castingHelper at all.
MINOR: Fixed typo
Merge pull request #2124 from CheeseSucker/patch-4

MINOR: Fixed typo
BUG: Fix for Cookie expiry timeout being passed as a large number on 64 bit machines
Update simple-contact-form.md
Merge pull request #2127 from silverstripe-rebelalliance/cookietimestamp

BUG: Fix for Cookie expiry timeout being passed as a large number on 64 ...
Add a note on the unit of the Session.timeout.
Merge pull request #2132 from mateusz/note

Add a note on the unit of the Session.timeout.
Updated helplink to 3.1
Merge pull request #2142 from ARNHOE/patch-2

Updated helplink to 3.1
Updated calls to methods instead of firect properties in PaginatedList
Merge pull request #2144 from micmania1/2143-paginatedlist-method-calls

ENHANCEMENT: Updated calls to methods instead of direct properties in PaginatedList
FIX: TestRunner was not cleaning up DB on failure

When a unit test being run by PHPUnit encountered a fatal error,
TestRunner::tearDown was never being called. This resulted in tmpdb schemas
littering the database from failed test runs. This changeset fixes the issue
by registering TestRunner::tearDown as a shutdown function, so that it gets
called even in the event of a PHP Fatal Error.
Merge remote-tracking branch 'origin/3.0' into 3.1

Conflicts:
	docs/en/reference/grid-field.md
Merge pull request #2021 from jthomerson/fix_if_link_not_working

FIX: <% if Link %> wasn't working
"Insert Media" dialog: Reposition separately (fixes #783)

FF21 and IE10 seem to propagate the DOM attribute changes differently
from Chrome: The dimensions can't be set in the same setOptions()
call through jQuery UI here. Fixed this by a separate setOption() call.
"Insert Media" dialog: Prevent loading indicator in IE8+

Fixes https://github.com/silverstripe/silverstripe-cms/issues/782
"Insert Media" dialog: Fixed event names

Fixes https://github.com/silverstripe/silverstripe-cms/issues/781
Regression from 9f600ada which uses jQuery UI widget "subclass"
that also affects event names.
NEW: Allow configuration of default embed width for images and media

Moved 'sensible embed size' logic from JS to PHP to allow setting
through config API
Changed default alignment of images/media to 'Centered, on its own'

More useful default for common usage and responsive images…? In my own
experience this is more practical as I have seen many users embed
images aligned left with text-wrap (without realising what they were
doing), only to then try to resize the image to fill the whole width
which can leave a few words awkwardly positioned next to the image