config: Refactor in preparation for adding set_config

With this change calling get_config() to set a default parameter is
no-longer supported.  It wasn't a good idea anyway as:

* It makes the generated documentation dependent on the environment in
  which it is built.
* Changes to the configuration at run time (made with the up and coming
  _set_config) have no effect until the next run.

The documentation is still correct as we already have support for pulling
the defaults from (the default) stbt.conf at build time in `api-doc.sh`.
This required updating the documentation to use the
`default: from stbt.conf` pattern universally.
config: Add `stbt._set_config`

`stbt._set_config` allows writing stbt config files.  This is required for
Smart TV support to allow storing the results of calibration, but it may
be useful elsewhere.

`stbt._set_config` is private and not exposed via the `stbt config` command
as, due to limitations of Python's `ConfigParse` it will currently remove
all comments and normalise all whitespace in the configuration file.  We
may be able to fix this in the future[1] such that we can provide the
function as part of the public API.

[1]: http://stackoverflow.com/questions/6620637/python-configparser-question-about-writing-comments-to-files
Merge remote-tracking branch 'wmanley/set-config'

* wmanley/set-config:
  config: Add `stbt._set_config`
  config: Refactor in preparation for adding set_config

Closes #102.