Refactor humane datetime parser

Makes it easier to add new formats.