Add :keep_zero option to ::parse and ::output

Updated this pull as per #13

I'm not entirely happy with the `chrono` output format behaving differently to all other formats, but since that's legacy behaviour, I left it alone so as not to break existing code that expects this...

Added specs, and all existing specs passing.