i18n documentation - added note for caching in multi language modules
Style destructive actions destructively
Add backwards compatibility for has_extension
Update docblocks
FIX: Use Injector API for managing Member_Validator instance.

Updates the CMS profile page and SecurityAdmin to give developers a few ways to customise the required fields.

Added extension hook updateValidator for getValidator for things like modules to inject required fields to go along with Injector for replacing the entire class for project specific use.
HTML attr encoding for UploadField config

Also fixed UploadField operation with canUpload=false,
which broke the JS because no config could be found,
since the <input> field wasn't present. We can't put the data-config
attribute on the field holder, since fields can be rendered
without their field holder through FormField->SmalLFieldHolder().

Fixes https://github.com/silverstripe/silverstripe-cms/issues/874
Feature to allow that changing the SSTemplateParser through the Injector system

The motivation for this was to allow module developers to change what parser is used to parse SilverStripe templates.
This change enables people to compile their own version of the SilverStripe template parser and use it without modifying core files.
Using Behat EmailContext by default
array check to ensure getRemoteJoinField() gets an array from Config::inst()->get($remoteClass, 'has_one') (related issue: #2570)
API: DataObject->getRemoteJoinField() no longer defaults to ParentID but throws an exception instead
Fluent API for Email
FIX #2496 `ConfirmedPasswordField` mismatch passwords saved

Fixes #2496

Also fixes another issue where 'Password' is hard coded as field name in `validate()`
Behat tests for lost password
FulltextSearchableTest doesn't clean up after itself.

The extension doesn't get unloaded correctly at the end of the test,
resulting in tests afterwards sometimes failing because the table
type is reset back to InnoDB.

See silverstripe/silverstripe-cms ed8ee4e9b for a similar fix done
in the cms module.
Merge pull request #2576 from halkyon/fulltextsearch_test

FulltextSearchableTest doesn't clean up after itself.
FIX Session::get_timeout
Merge pull request #2578 from JayDevlin/fix-session-get_timeout

BUG Session::get_timeout()
Disable "lost password" feature, breaks on "php -S"

PHP's built-in webserver doesn't reliably expose SCRIPT_NAME,
see https://github.com/silverstripe/silverstripe-framework/issues/2580.
This breaks URL routing on /Security/passwordsent/admin%40test.com
GridField 'Add existing' action styling improvements
Email fluent API regression (fixes #2581)