Fix ignored ids for belongsToMany relations

Fix ids ignored by marshaller for belongsToMany relations.
fix FileEngine, divergent behavior when debug is off or on
Initial code for a BETWEEN SQL expression object
Fixing code and adding test for the Between expression
Fixing doc block
Adding doc block for QueryExpression::between()
Removing inheritance on the Comparison expression

The inheritance was not needed at all and only created confusion,
specially since the operator was hacked into _conjunction and
the getter/setter for it made no sense at all.
Consolidating common code
Using a new FieldInterface to make BetweenInterface quotable

By using and expression the identifier quoter can now handle
comparisons and between objects af if they were the same thing.
Also removed a piece of code was not actually needed.
Fixing CS errors
Fixing return values in QueryExpression doc blocks
Adding test for using an expresison field with between and fixing code
Fixed typo
Fix eg. code in docblock.
Merge pull request #4989 from cakephp/3.0-between-expression

3.0 between expression
Merge pull request #4768 from darxmac/cache-consistent-behavior

fix FileEngine, divergent behavior when debug is off or on
Using the correct IntlDateTimeFormatter pattern in test
Merge branch 'patch-4' of https://github.com/SplicePHP/cakephp into 3.0-fix-btm-marshaller
Updating the new code in Marshalelr to take composite keys into consideration
Fixing part of a failing test