Replace time() with DateTime's getTimestamp()
Correct operator in Time::isPast()
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