500 error on schedule create when missing 'tenant' or 'action'

I added another check to catch a request without an action. I also changed the logic a bit, since all of the conditions in the 'create' method of the API aren't really mutually exclusive. For example, if the request has no body, there's no point in checking for anything within the body since it will never be there. Added 2 test cases to complement the ones I wrote earlier on a previous ticket.

Fixes rm1007