Various smaller notes in design document.
update apidoc
fix broken reference in docs
Small coding related TODO document.
Merge pull request #19 from catkin/docs

A few notes in the documentation.
Minor notes and help output.
Move type_error_msg helper to exception module.
fix some rst syntax in docstrings
Refactor OS plugins.

- implement conclusions of latest discussions about derivative OSs and and core
  installers

- refactor using plugin_utils

- update unit tests
remove "priority" from rules dict
Move rules_dict to sources subpackage.
Remove all relative imports to parent packages (`..`)
Small tweaks to OS plugins.
Tweak type_error_msg utility.
Add is_program_installed and info_v utilities.

- `is_program_installed` checkes if an executable is found

- `info_v` is like `info`, except only prints if `is_verbose()` is True
Remove unused import.
config_utils: new helper for easier access to default values.
config: added get_default_config for easy access to default config dict
config: core_installers is now not os option
installers: major rework

- `Installer` now abstract base class using `plugin_utils`.

  - added prerequisite abstraction with new `InstallerPrerequisiteError` exception
  - added options
  - use `config_utils` to describe and parse options and rules_definitions

- `InstallerBase` implements some common functionality and defaults.

- `PackageManagerInstaller` implements more common functionality for
  package manager based installers, for example checks if the
  package manager itself is installed and up-to-date, hooking into
  the new `prerequisites` abstraction of `Installer`.

- Updated implemented plugins.

- Updated `InstallerContext` to changes to os and installer plugins.

- Update `resolve` and `lookup` verbs

- Updated unit tests