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.
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.
NEW Hook for `Member::registerFailedLogin`

Adding a hook for registerFailedLogin so that it is possible to add some custom logic when a user fails to login

Also rearranged the write as this function could hit the DB up to 3 times. Now it will me 0 or 1 times.
Using Behat EmailContext by default
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.
Merge pull request #2560 from TomSpeak/patch-2

NEW Hook for `Member::registerFailedLogin`
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
BUG: An enum field in the search panel model admin misses an option to not filter on that field
Merge pull request #2566 from NicoHaase/master

 BUG: An enum field in the search panel model admin misses an option to not filter on that field
Removed duplicate "quickfire" section in docs