Ensure failure types contain only immutable items

Always make sure 'exc_type_names' is a tuple, when it comes from
either the 'exc_info' tuple or from **kwargs to enforce the failure
type being immutable (which it always should be).

Change-Id: Icbdd9bc67d26b25f510914d0b19df9caef400c6d
When creating daemon threads use the bundled threading_utils

Instead of creating daemon threads using the threads module directly
use our small utility file to create the daemon thread on our behalf
and set the appropriate attributes to ensure it's a daemon thread.

This change replaces the existing locations where we were doing this
manually and uses the threading_utils helper function uniformly instead.

Change-Id: I535cee8a63407f753cf812df53c4f5bc83e0c9ae
Mark 'task_notifier' as renamed to 'atom_notifier'

Deprecate the usage of an engines 'task_notifier' in
favor of the more appropriately named 'atom_notifier' and
mark the 'task_notifier' property as subject to removal
in a future version.

This makes the usage of this notifier more clear since it
is not only used for task notification but also for retry
notification (which is why naming it atom notifier is more
suited to its actual usage).

Change-Id: I79d58a08fd8e6d7c8990e70bdfaae415202aa929
Add a jobboard high level architecture diagram

Incorporate a diagram into the documentation which
shows at a high level what the different components
of a jobboard are and the different actors that are
typically involved in using it.

Also moves the graffle (omnigraffle) xml/text files
to be tarballs; to save space and to avoid false line
counts in gerrit and stackalytics.

Change-Id: I5ddb0bdb7e2eb39844d064546a34795f08cf0c1f
Use the deprecation utility module instead of warnings

To ensure we are consistent with our usage of the warnings
module always use it through the deprecation utility instead
of accessing the warnings module directly.

This adds on a new deprecation utility module decorator that
can be used to notify users about function kwarg renaming (of
which the 'engine_conf' -> 'engine' rename/change is one
example of) and adjusts the messaging formatting functions to
accomodate for its introduction.

Change-Id: Ieb987ef9e1e4515caa676a007ad00590d354132e
Merge "When creating daemon threads use the bundled threading_utils"
Merge "Ensure failure types contain only immutable items"
Merge "Add a jobboard high level architecture diagram"
Merge "Mark 'task_notifier' as renamed to 'atom_notifier'"
Merge "Use the deprecation utility module instead of warnings"