Allowing chaining on `PasswordValidator`

Allowing chaining on `PasswordValidator`.

Also using injector pattern for `ValidationResult` instanciation
Strict type check for null cache values

Previously, generated cache results that returned 0, '', array() etc
were being ignored. This change narrows it down to just false.

Ideally we would use a EmptyCacheHit object to be very specific for
these cases, but perhaps this approach is a bit overkill.
Merge pull request #2605 from willmorgan/cachetofile-false-fix

Strict type check for null cache values
"House rules" docs
Replace some new *Field with *Field::create()

Specifically intended to change new TreeDropdownField with TreeDropdownField::create but also replaced a few others as well.  This allows class replacement of TreeDropdownField in order to extend its functionality without having to override HTMLEditorField.
Merge pull request #2611 from chillu/pulls/house-rules

Written up some "House Rules" for the community, but particularly for the core team.
Note about API changes on master
BUG Issues with CMSForm not consistently respecting new form naming scheme.
Fixes for failing CMSFormTest cases
Merge pull request #2623 from tractorcow/pulls/3.2-form-naming-fixes

BUG 3.2 Issues with CMSForm not consistently respecting new form naming scheme
Merge pull request #2612 from AlphaCactus/patch-1

Replace new *Field with *Field::create()
Added "be inclusive" sentence to contrib docs
Merge pull request #2574 from dhensby/patch-1

Allowing chaining on `PasswordValidator`
Check if remote class exists in DataObject->getRemoteJoinField()
Merge branch '3.1'

Conflicts:
	docs/en/reference/execution-pipeline.md
	lang/nl.yml
Making ConfigStaticManifest::parseStatic error more meaningful

The error thrown by `parseStatic` when there's an unexpected token is now more meaningful as it states the type of token that was encountered as well as the class that it was found in.
Merge pull request #2665 from dhensby/patch-1

Making ConfigStaticManifest::parseStatic error more meaningful
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
IMPROVEMENT/FEATURE Forcefully write javascripts to the end of the HTML if wanted.
It's defaulted to false. But when set to true, the JS is written to the end of the HTML, even though there are earlier scripts.
This results in faster page-loading if the JS isn't needed earlier-on.
Merge remote-tracking branch 'origin/3.1'

Conflicts:
	forms/gridfield/GridFieldSortableHeader.php
	model/DataList.php
	model/fieldtypes/Enum.php