change calling conventions for maint periods, improve tests

Changed the non-optional 'options' fields to arguments to those methods, only delete current unscheduled maintenance if we're actually creating a new current one, and some more test coverage for unscheduled maintenance periods in general.

Please don't close the named issue number, it's a general tracking issue for better tests :)