Collision free approach to resolve the DOM ID issue in a clean way. Fix to generation of ids for multiple checkboxes. Resolves ticket 4064.
prevent possible XSS attack via form helper selects and unescaped output.
Also make DOM ids for radio element values unique.
Adding StringTemplateTrait so that the string template functionality can be easy shared between helpers in preparation of refactoring the Form helper to use string templates as well.
Adding a test for the StringTemplateTrait
Throw exceptions from Hash::combine()

When the key + value counts do not match Hash should throw an exception.
Silently doing the wrong thing is generally not a good idea. While this
change could break existing applications, those applications were
probably behaving incorrectly anyways.

Fixes #2470
Setting providers fro validator where they make more sense, this will
also help to better validate outisde the table class
Not using toArray in Entity::validate() as some properties were not
validated if marked as hidden, this would for example prevent password
validation if marked as hidden
Simplifyind code in Marshaller
Remove leading slash.

It is not needed.
Update mass assignment to be guarded by default.

Having to enable guarding makes apps less secure by default, and forces
users to opt into what should be a safe/secure default.

Setting properties individually should not be subject to mass-assignment
rules as it is probably not mass assignment.
Disable guarding on internal methods.

Disable guarding on the ORM internals. The internals should never be
guarded as they are generally wiring entities together or doing internal
data manipulation.
Fix failing tests in Entity test.
Add tests for single set + accessible properties.
Marshaller should do mass assignment.

Setting properties one at a time bypasses the mass assignment
protection. Since Marshaller is intended to handle convert user request
data into entities, it should apply mass assignment protection rules.
Add Table::associations()

This will let other parts of the framework and application code use the
associations object to manipulate the data it contains.
Merge pull request #2524 from markstory/3.0-safer-mass-assignment

3.0 safer mass assignment
Using static variables instead of instances properties.
Double rainbow.
Merge pull request #2530 from bar/patch-1

Double rainbow.