Add misc time encapsulation classes
Unify open hours parsing, use Time.wday as array offset