Allow users to extend the SSTemplateParser by defining open & closed blocks

Currently the only way the extend SSTemplateParser is to define a class
extension of it and then tell the injector component to use your new
custom class. This new change allows a user to define new "open blocks"
and "closed blocks" for SSTemplateParser to use without needing to
recompile the real SSTemplateParser class.

The following example shows how the functionality can be used
to add a new <% minify %>…<% end_minify %> syntax to the template parser

In a config.yml file, define the new minify closed block to call the
static function "Minifier::minify"

```
Injector:
	SSTemplateParser:
		properties:
			closedBlocks:
				minify: "Minifier::minify"
```

Define a new class with the minify static method that returns the new
template code when regenerating templates:

```
class Minifier {
    public static function minify(&$res) {
        return <<<PHP
{$res['Template']['php']}
\$val = zz\Html\HTMLMinify::minify(\$val, array('optimizationLevel' => zz\Html\HTMLMinify::OPTIMIZATION_ADVANCED));
PHP;
    }
}
```
Replace HTML entities in GridFieldAddExistingAutocompleter->doSearch() with actual charaters as the DropDown does not play nicely with HTML entities
disable source_file_comments in GridFieldAddExistingAutocompleter->doSearch() because they would be displayed as plaintext in the dropdown
Update partial-caching doc to include note on using .Max and .Count together.
Update partial-caching.md
Merge pull request #2656 from madmatt/patch-2

Update partial-caching doc to include note on using .Max and .Count together
Added 3.1.2 changelog
Merge branch 'tmp-3.1.2' into 3.1
Merge pull request #2596 from camspiers/sstemplateparser-extendabilty

Allow users to extend the SSTemplateParser by defining open & closed blocks
FIX: scaffolded search field null selection by default

Enum search fields should default to having an empty string set
NEW: Pre-populate and disable foreign key field on has many lists.

This is a common use case, and by default a form field is added which
has no effect. While this coupling is undesirable, it makes the default
behaviour much more sensible.

See #2662, #2651, #2637 for more information.
NEW: GridField can sort on relation columns

Slightly improved logic

Add support for relations more than one 'level' apart

Add unit tests

Fixing PostgreSQL support

Throw exception if attempting to sort on a has_many/many_many relation
Add X-Backurl header to CMS ajax requests
Fixing coding conventions in Behat files
Fixes issue #2669

Add local setName() function to DatetimeField, which also sets Name
on the constituent DateField, TimeField and timezoneField.
Merge pull request #2670 from sekjal/issue2669

Fixes issue #2669
Merge pull request #2657 from kinglozzer/cms-xhr-referer

NEW: Add X-Backurl header to CMS AJAX requests
Fix installer isIIS() to include IIS versions greater than 7.
Merge pull request #2672 from tiaitsch85/tiaitsch85-patch-1
API: Implement SS_Map::push() to append values.

FIX: SS_Map::count() not taking into account additional firstItems