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 would use a number with a non-zero fractional component just incase `FloatOption` does some kind of funny business under the hood. For example, if there was a bug where it dropped the remainder then `1234 == 1234.0` would be true.