Spec fix: use UTC for cross-timezone compatibility
Refactor #validate out into a Validator
Refactor #coerce to use Coercer

This one was actually really pretty freakin' cool. Ruby has built-in
methods (defined on Object) that coerce a lot of types for you (e.g.
Integer, String, Float, etc.). We took advantage of that and defined a
few more (and redefined some) so that by passing in the class name, you
can coerce a type using the pre-defined methods.
Refactor transform logic into a Transformer
Cleanup Sinatra::Param and create Validator.valid?

Rather than relying on exceptions that were never exposed to the end
user, this change just works on booleans.