Generic “cancel” button behaviour with History.back()

Used in “add page” dialog. See https://github.com/silverstripe/silverstripe-cms/pull/793 for context
Don't rely on Behat/Selenium returning 'value' for textarea

Technically a textarea DOM node doesn't have a 'value' attribute,
but rather a HTML content. This used to work, but likely broke either
by updated browser handling or updated selenium logic.
Fixes "Scenario: I can edit title and content and see the changes on draft"
NEW: GridField can sort on relation columns

Slightly improved logic

Add support for relations more than one 'level' apart

Add unit tests

Fixing PostgreSQL support

Throw exception if attempting to sort on a has_many/many_many relation
NEW: Pre-populate and disable foreign key field on has many lists.

This is a common use case, and by default a form field is added which
has no effect. While this coupling is undesirable, it makes the default
behaviour much more sensible.

See #2662, #2651, #2637 for more information.
Revert "Don't rely on Behat/Selenium returning 'value' for textarea"

This reverts commit 8245125349961ef0f2c35f91b10633f3ab0ae812.
FIX: scaffolded search field null selection by default

Enum search fields should default to having an empty string set
Added SSViewer::get_templates_by_class() to make the functionality in LeftAndMain::getTemplatesWithSuffix() more open.