Allowing chaining on `PasswordValidator`

Allowing chaining on `PasswordValidator`.

Also using injector pattern for `ValidationResult` instanciation
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.
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`