Use Config nesting in `SapphireTest::useTestTheme()`

Using the Config nesting functionality to restore variables
Update dataobject.md

There's no way to make things like [api:DataObject->beforeUpdateCMSFields()] work, is there? 

I removed those kind of api tags (the links yielded a 404 page), and corrected a few other link-rendering issues.
API New JS sprintf and inject replacement functions

Fix sprintf issues when replacement was at start of string + introduce
new inject function using injection map similar to the PHP version of
_t()
FIX declarations matching PHPUnit_Framework_Assert

FIX for phpunit error message: ERROR [Strict Notice]: Declaration of SapphireTest::assertNotContains() should be compatible with PHPUnit_Framework_Assert::assertNotContains, and the same error for assertContains()
Fix for joins code block
Updating the WAMP docs to include composer installation and apache 2.4 fix - delete index.php

Now uses GFM for code blocks.
Merge pull request #3268 from camfindlay/wamp-docs

Updating the WAMP docs to latest version and include composer installation notes
BUG #3282: Added ability to subselect with in left or inner join
BUG Fix several issues around onmatch/onunmatch entwines.

1. Add missing _super calls.

2. Make UI widget destroys more consistent to avoid exceptions.
Selectable would throw an exception in the GridField.js if destroy
called from onunmatch - at that stage jQuery UI would have had called
the destroy already. Add a guard, and change to onremove, which triggers
before the element is removed from DOM.

3. DOM traversal fails after the element is removed from DOM.
Onunmatch triggers after the removal of the element from the DOM, which
makes DOM traversal fail. Use onremove instead, which triggers while the
element is still in DOM.
Merge pull request #3286 from mateusz/destroy-checks

BUG Make UI widget destroys more consistent to avoid exceptions.
BUG If user is logged out getHtmlEditorConfigForCMS() gets called on non object

This can happen if the auto-logout feature logs a user out and the user then tries to open another admin or
do an pjax call.
Merge pull request #3299 from stojg/pull/if-user-logged-out-causes-500-error

BUG If user is logged out getHtmlEditorConfigForCMS() gets called on non object
Merge pull request #3297 from senorgeno/3282-orm-left-join-sub-select

BUG #3282: Added ability to subselect with in left or inner join
DOCS Setting allowed_extensions in YAML

3.1 compatible docs in place of #3267
Merge pull request #3308 from camfindlay/patch-9

DOCS Setting allowed_extensions in YAML
API Let extensions control folder selector in HtmlEditorField_Toolbar
Merge pull request #3312 from tractorcow/pulls/3.1/extend-htmleditor-parentid

API Let extensions control folder selector in HtmlEditorField_Toolbar
Merge pull request #3277 from kopymark/patch-3

Fix for joins code block
Moved checkboxset  option list generation to separate method

This allows subclasses and extensions time to modify the list of options and their configuration without having to override the entire Field method.

A more flexible way to implement silverstripe#3311
Merge pull request #3319 from wilr/movetogetoptions

Moved option list generation to separate method