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
log_utils: fix typo
exception: fix type_error_msg
util and exception: Some reorganization

- added `read_stdout_err`

- custom excepthook is now added conditional on the script executing being called `xylem`

- move exception related utils to `exception` module

- move all exception classes (except XylemError) to according submodules

- change `raise_from` to emulate py3 exception chaining on py2

- introduce `exc_to_str` helper, which works together with `raise_from`
  to emulate py3 chained-exception printing; use this in custom excepthook
Some more absolute imports.
plugin_utils: name verification and plugin disabling

- add customizable verification to plugin classes

- introduce plugin disabling; new settings/argument `disabled_plugins/os`,
  `--disable-os-plugins`, etc