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
`for (var i = 0; i < subject.length; i ++)`