Add json command line output

Potentially useful for integration with other command line tools.

* Use `puts` instead of print to supress output to stdout
Add date inference

Allows incomplete dates to be parsed by replacing missing fragments with
localtime.
Fix json and geocoding mutually exclusive

Geocoding requires coordinate input from a prompt which json hides.