Date parsing

Closes #99.

This will attempt to parse the original value passed in as a date, and if that fails then use `parseInt`.

This allows for values like `'1397631169892'` to still work, but to also get the full use of `Date.parse`.
To be consistent, I was matching it to what happens if `newVal` is already a date on line 602. And since the getter always returns a date, it shouldn't matter. Not sure what the best way is though.