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 was thinking about this in terms of the plugins, which already have Config classes that have defaults set for options.

One way to add 'required' options to the schema definitions might be to change the base Config class' schema to  list all of its options under 'properties', and then have the required ones in a 'required' list:
{
  'type': 'object',
  'properties': {
    'option1': { 'type': 'string' },
    ...
  },
  'required': ['option1']
}