Add maintenance to the CLI (closes #562, #563)

As part of this, I've also:

- Updated create_*scheduled_maintenance to allow for an input string to be parsed by Chronic.  This has no effect on existing code.
- Fixed end_unscheduled_maintenance to return a boolean when the unscheduled maintenance is ended (Also done in #596)
- Moved the times in the tests to global variables
- Had rubocop fix indenting/spacing on tests
I'm not convinced that the data model is the right place to do string to time interpolation ... do we do it anywhere else? It seems like it's more of a concern for user interfaces and api's rather than the data model? Not sure. @ali-graham what do you reckon?