FIX 7853 Flush the content of drop down fields when closing html editor linker (links and images)
BUG Exclude framework/dev from text collection (fixes #4754)

Avoids breaking execution if PHPUnit is not installed,
since classes in framework/dev/ extend PHPUnit,
and get autoloaded when we inspect the ancestry and implementors
of every class defined on the filesystem.
Not an ideal, since it removes i18n support for dev classes,
but in practice this only impacts a single entity definition.
BUGFIX Versioned_Version->relField() so fields can be used in GridField etc

Copied from DataObject, since we can't use the $fallback opion in this case
(will try to retrieve from wrong class)
BUGFIX: fix for broken layout in insert media dialog - Trac #8232
FIX 7934 When lazy loading fields respect version of the record
API Data corruption on Versioned due to lazy loading

Lazy loading no longer loads fields from the versions table when querying. This could lead to incorrect data being displayed if the data on the object and the version it pointed to did not match.

API methods to allow setting of the context of the query that generated the DataObject on that object (used by the lazy loading mechanism to correctly query the Stage, Live, or Versions tables)

See https://github.com/silverstripe/sapphire/pull/1178 for context.
Deprecation docs
ENHANCEMENT Additional image generation functions now self-determine if a modification to the underlying image backend is necessary before generating additional image files.
Removed internal/outdated/speculative docs from requirements.md
Merge pull request #1312 from chillu/pulls/deprecation-docs

Deprecation docs
NEW: Move temp data into a user-specific subfolder, to stop temp-permission bugs from occurring.

Anyone who has run "sudo -u www-data ./framework/sake dev/build" knows that SilverStripe's temp
folder permissions can be very brittle.  This patch resolves this by making the temp folder
user-specific.

To minimise directory pollution it first creates a chmod 777 parent folder with the same name
as the current folder.  It then creates a subfolder of this with the same name as the current
user.

The positive impact of this change is that sake can be used without fear of messing up file
permissions.  This means, among other things, that we can put a Composer post-update-cmd into
the installer to run dev/build.  Progress!

The negative impact is that you will get two caches if you run sake as a different user.  However,
that is much better than the current situation - which is a bunch of bugs - and if you're concerned
about that, you still have the option of running sake as www-data.
Fixed path in docs
More upgrading notes about 3.1 and statics
FIX Fallback for Session.cookie_path

Regression introduced by Config API static changes.
Effectively meant that you can no longer log in to the CMS
since the cookie path is set for each URL individually...
FIX Unset internal metadata on TreeDropdownField setValue()

Otherwise the hidden field value and metadata will get out of sync.
Most commonly used together with setTitle('') as well.
FIX Don't silently unset ParentID in "add page" dialog

Happened when changing the page type, because the "selectedNode"
property isn't set in all cases
Fixed config API usage (unknown call to set())
Removed Object::*_extension() non-LSB deprecation

Its just a simplication, and unnecessarily complicates
module compatibilities.
API Make Object::config use late static binding

Can now be used in instance scope, like:
  $this->config()->db
and in static scope, like:
  Page::config()->db
FIX: Groups should be able to have titles longer than 50 characters (Fixes: open/5611)