support subclasses of Date, Time, and DateTime

subclasses of the above classes don't survive the round-trip through Delorean, returning
their superclass instead. Notably, `Zip::DOSTime` inherits from `Time`, but
`Zip::DOSTime.now` returns an instance of `Time`
[(see #25 in jtrupiano/timecop)](https://github.com/jtrupiano/timecop/issues/25)

This patch alleviates the problem, and attempts to do so in as clean a manner as possible.
fix human-readable portion of spec
use DateTime's iso8601 helpers instead of '%Q' formatter in order to avoid limitations with the unix epoch
Version 2.1.0
Added freeze time methods

Added freezing time
 methods

mend
Merge branch 'freeze_time_methods' of https://github.com/alejanderl/delorean into freeze_time_methods