Adds schema methods to options and Config files.

Adds a schema() method to Config and Options classes that returns their json-schemas. Also adds unit tests to test_config.py to test schema methods for Config and for StringOptions and BooleanOptions.

Related to: #632
I originally tried having 'required': [] as part of the schema, and filling it as needed when options are required. But json-schema validate() throws exceptions if a schema it receives as input has an empty list of 'required'.