Replace Chronic with a custom time parser.

This gives us more control over how times are parsed and avoids issues that
arose from Chronic's notion of "now".

The parser code works but is rough around the edges and need refactoring.