Fix datetime comparison in relative datetime functions.
Closes #2987,#3514
Use terser assertions.
Remove Asset.x Configure values.

Having Asset.timestamp on can fail tests accidentally.
Fix FormHelper::tagIsInvalid with saveMany forms.

When saving multiple records validation errors were not correctly shown.
Fudge the entity path so it matches the validation errors set in the
models.

Fixes #3828
$this->modelClass needs to be correct prior to the components init() call if the component itself accesses the model, lazyloading would try to load the wrong model otherwise
add test case
Merge pull request #1282 from dereuromark/master-model-class

$this->modelClass needs to be correct prior to the components init()
Allow readFile() in CakeEmail to be accessed publicly

I needed this method while building a Transport, and saw no reason why it needed to be protected.
Create method readAndBase64Encode() in File utility.

Move this utility method out of CakeEmail, which allows other Mail transports to encode files manually. Maintains BC.
Make readBase64 an instance method

Leverage the existing code in File::read() and simply add in chunking and base64 encoding.
CS fixes
Merge pull request #1285 from dereuromark/master-cs-fixes

CS fixes
The assembly of the message was not correctly completed in specific Japanese.
Add TestCase for Network/Email/CakeEmail.php
code is not translatable and should not be part of the translation strings
Add to docblock the reason why the output is chunk_split
Update link url to revised method name
Merge pull request #1287 from dereuromark/master-translation-strings

code is not translatable and should not be part of translation strings
Merge pull request #1286 from kunit/master

CakeEmail::_wrap does not operate correctly by the character string of specific Japanese.
Fix empty response bodies when redirect URL's are empty.

When redirecting XHR requests to an empty URL the response body should
not be overwritten.

Fixes #3835