Alter valid_end and valid_start to use DateTime

- in some silly scenarios, a schedule may come into effect on a date at a certain time
- this allows that to happen

Closes #70
3 jobs for 70-valid-dates-datetime in 1 minute and 41 seconds (queued for 1 second)
Status Job ID Name Coverage
  Test
passed #3734
whats-open-py2.7

00:01:32

passed #3735
whats-open-py3.5

00:01:40

passed #3736
whats-open-py3.6

00:01:41