Improve tests

I noticed a couple problems introduced by PR #69.  This PR fixes those issues.

We decided to enforce the the type of items in the task dictionary using the "items" property in jsonschema.  Unfortunately jsonschema does not support an `item` property for object definitions and the existence of the `item` instead of the `patternProperties` also caused unexpected behavior around jsonschema's ability to enforce the `minItems` constraint, allowing a test to pass that should have been failing.

Also, some negative tests which were expecting a 400 error were passing because an `environment` property was made illegal by the new jsonschema, not because of the errors those tests were actually trying to detect.  Those tests have been improved to check specific error messages to make sure the 400 status happens for the right reason.