Fix HTMLText AbsoluteLinks not parsing placeholder

Add an AbsoluteLinks method to HTMLText that parses placeholders instead of returning the raw value.
Upload: refactor file versioning
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: Incorrect calculation of UploadField height (fixes #2862)
Fix: Remove superfluous iframe resize for UploadField (fixes #2863)
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
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
CSS: Fix upload field display for preview open
BUG: CMS tree filters doesn't count the correct number of children for deleted pages

This is a bug that combines Hierarchy, Versioned and LeftAndMain admins and CMSSiteTreeFilters.

This bug can be reproduced by having a large site tree with enough deleted pages in it so it doesn't
pre load all the children pages when initially opening an admin. Filter by either 'All pages including deleted'
or 'Deleted pages'. For CMS users it will look like deleted pages are gone.

The solution involves a couple of smaller fixes in both CMS and framework modules.

1) Ensure that 'numHistoricalChildren' are used instead of 'numChildren' when dealing with deleted pages
2) LeftAndMain::currentPage() deletes all the 'marking' cache previously built up by Hierarchy::markPartialTree()
3) Use Versioned::get_included_deleted() instead of raw DB queries against the DataObject tables when calculating parents in CMSSiteTreeFilter
Merge pull request #3309 from stojg/issue/cms-1049

Delete parent page, child pages cannot be found anymore
Merge pull request #3329 from adrexia/upload-with-preview-fix

Fix upload field display for preview open
FIX Handle empty URLs that are made absolute

When the email sender makes the links absolute, it can't handle empty `href` or `src` attributes as there's no expectation that the string length could be 0