Enable support for ISO 8601 deserialization

Makes it easier to work with JSON representations of schedules.
Make sure time is required in and add some specs for iso dates
Use a case statement instead
Merge pull request #238 from donaldpiret/iso8601-dates

Support deserializing values in ISO-8601 format