Use DateTime in Time utility 'is' and 'was' comparisons
Move time evaluation logic into a single protected method
Implement timestamp behavior

closes #2215
Allow for use with any event

By allowing the behavior to act on any event, it's possible to easily
cater for soft delete (deleted_date) or any kind of custom event
(approval_date, rejection_date, published_date)
merge get+set timestamp

and change possible $when values to "always" "new" "existing"
add a test that the timestamp is current

allowing 3 seconds to prevent off-by-one-second errors
add an integration test
use array_fill_keys instead of a manual loop
don't save users from themselves

If the behavior config is changed such that it triggers an undefined
index error - don't silently swallow that
whitespace corrections
throw an exception for invalid $when values
invert assertSame parameters
Merge pull request #2275 from AD7six/3.0-timestamp

Implement timestamp behavior
Move timezone param and rename method
Rename evaluateTimeSpan method to isWithinTimeSpan
Ghetto automatic identifier quoting, lots of broken tests but the idea
works :)
Implemented automatic identifier quoting for all drivers, this features
can be both controlled by configuration and using the Driver API. This
features is, nevertheless, very cpu expensive to have as a default, thus
it needs to be explicitly enabled.
Adding test for FieldExpression
Making a backup of the value binder while quoting identifiers, otherwise
the query will be marked as dirty and all values lost and the end of the
query transformation
fixing all database tests when they are run with auto quoting