FIX: scaffolded search field null selection by default

Enum search fields should default to having an empty string set
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.
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
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"
Merge pull request #2595 from kinglozzer/gridfield-sort-relation

NEW: GridField can sort on relation columns
Merge pull request #2663 from ajshort/has-many-prepopulate

NEW: Pre-populate and disable foreign key field on has many lists.
Revert "Don't rely on Behat/Selenium returning 'value' for textarea"

This reverts commit 8245125349961ef0f2c35f91b10633f3ab0ae812.
Merge pull request #2660 from icecaster/patch-1

Scaffolded Enum Search fields dont offer a null selection
Added SSViewer::get_templates_by_class() to make the functionality in LeftAndMain::getTemplatesWithSuffix() more open.