Improvements for the Open Contracting project

We've made some improvements to json-schema-random for the [Open Contracting project](https://github.com/open-contracting/), so it would work with our schema. In the process I've refactored the generator to be a class, added a couple of command-line options and implemented a couple of missing types, like `oneOf` objects and `$ref`. Apologies for making one big pull request.