A whole bunch more config revampery &c.

- config files are now read from the file system if they exist (in JSON format,
  which I hate, but hate less than the alternatives)

- if a config file changes, it's automatically reloaded (and modes can react to
  the updated reactive config values if they're especially awesome)

- all the bits are wired up for generating a "defaults" config file based on
  the available configuration options, but the last mile hasn't yet been
  walked; I have some ideas on what I want to do there that haven't yet
  converged
Finished up config editing bits.

- switched to Java properties files for basic config; JSON is overkill and has
  unconscionable limitations like not allowing comments (WTF?)

- wired up M-x edit-config which opens the config file for a mode and populates
  it with the current configuration.