C level hms/ms/hm parsing

All this time hms/hm/ms parsing wasn't correct as it was based on ymd_hms. Now I finally got down to solving that.


This pull adds a specialized hms C level parser, and it is based on pull #200.