Issue #10: Validate `inputs`

* Add `inputs` to schema

* Big rework of validation recursion

* Flattened and merged some loops into top level validator

* Support for `additionalProperties` in schema validation

* Change error message for minLength on strings

* Misc refactorings and tests
if results is only used once, there's not really any point in declaring it above and then passing it here.