Rework timeseries interface

This major rework of the interface preserves most of the previous behavior but
refactors it into a more flexible set of options geared around input and output
modes.  These are breaking changes and will require a major version bump.

Notably:

The restart option -c has been removed.  Although this option worked for the
most part it never really could reliably restart because the recipient of the
output is the one that needs to dictate where a series should restart.

The pattern of -lower -UPPER where the lower option would be the infinite
series and the upper would be the constrained series has been replaced with
distinct input/output mode plus an option -m that toggles infinite output.
This reduced a great deal of duplication and freed up several letters for other
options.

A method implemented to do what a `Time.zone.strptime` method should do -- ie
`Time.zone.parse` but with an input format.  To be clear this method is a hack
and should probably exist in ActiveSupport.

Testing was generally expanded but more testing and cleanup is still needed.
Add manpage as markdown

A pretty good start.  Still needed is the tooling to convert this markdown to
roff; maybe when I take time to package this up.
Move Utils methods and remove Utils module

This colocates the utils methods to the classes that use them.  Arguably this
refactor should go the other way, but I'm feeling like condensing
functionality.
Rename :time_format option to :output_time_format

Standardizes the naming a bit.
Make all input modes assume -k by default.  Add -K.

This feels better in use.  Also adds the -K option to turn off blocking if
needed.
Ensure -W limits output according to series