refactor ctor into setDate()
add now()
add getFormat(), setFormat() to override what was passed to the CTOR
Add isDate() and a couple to tests to cover this behavior.

For lulz: https://gist.github.com/4557772