Date precision

Slightly based on #114 to implement #101 

WIP - there are still a few failing tests for precision based tests; but want to get some code review on this first.