Add a tree type

A tree module will be very useful for tracking tree
structures in taskflow. So to encourage development and
usage of such structures add a type module and helper
classes that can be used perform tree operations on
tree structures.

Change-Id: I63c0653d051aeb4d1ea8a55f0e25fc25ff9e37f1
Remove check_doc.py and use doc8

Instead of using a helper script that is internal to taskflow
use the doc8 package (which was created based on the check_doc.py
work) instead. This avoids repeating duplicated code when a
stackforge/external pypi package can provide the same
functionality.

Change-Id: Ie5a43f96b20e34f3955657ad2ef8beba05a4300e
Simplify identity transition handling for tasks and retries

TaskAction.change_state and RetryAction.change_state should just work
for any transition. We still ignore real identity transitions -- those
which don't change state, result and progress of the atom -- in order
order to avoid unnecessary notifications.

Change-Id: Ib5cbc4c04abbd23f4204b2b6145c0fedd2fd811b
Create a top level time type

Create a time module under types and place
the stop watch class and timeout classes there
so that we can have a single location where
generic types that do things with time can be
located.

Part of blueprint top-level-types

Change-Id: I8eb7e897c0354b20a7fa0d061434006e775d5e94
Clarify locked decorator is for instance methods

Make it clear when reading the lock utils code that the
locked decorator will only currently work with instance
methods by removing the usage of 'args[0]' and renaming
this variable to 'self' and adjusting the docstring.

Once the wrapt module is approved and we are able to use
it in taskflow, we can refactor the function to be correct
with regards to classmethods.

Change-Id: Ic33eb9e47679d2105654634469dd6d305d38b2e0
Fix traces left in zookeeper

We currently are leaving the root node in zookeeper
whenever this test is ran, we should instead be removing
the full directory and any children to avoid leaving
test data behind in zookeeper (aka, cleanup our dirty
laundry).

Fixes bug 1330807

Change-Id: I56d9dabd9926463506e1710ddf0a6c4831d5dc57
Use `flow_uuid` and `flow_name` from storage

Instead of fetching these attributes from the flow
or flow detail objects before notifying just use the
same attributes provided from storage which is the
best source of these two attributes.

Change-Id: I383e152758f177de2aac87425790ee1a82c3ca6b
Make the expiring cache a top level cache type

Create a cache module type and adjust a few of its
methods to be more pythonic and then switch out the
work_based engines usage of it and adjust its tests
methods with adjusted methods using the new cache
types functionality.

Part of blueprint top-level-types

Change-Id: I75c4b7db6dd989ef328e9e14d4b00266b1c97a9f
Fix the section name in CONTRIBUTING.rst

The name of the section "If you're developer, start here"
has changed in the wiki, now is "If you're a developer".
This commit updates it to correctly refer to the
proper section.

Change-Id: I6e84c6ce670680ae1146f4ba5ff529bc6f8d72ab
Merge "Clarify locked decorator is for instance methods"
Merge "Fix traces left in zookeeper"
Merge "Make the expiring cache a top level cache type"
Merge "Add a tree type"
Merge "Create a top level time type"
Move the stopwatch tests to test_types

Since the stopwatch is a type in the time
module we should move the test for it from
utils test to the test that is used to test
all the various types.

Change-Id: Id462baaada2784bf2af1da9c8548a2393c1af7fb
Raise NotImplementedError instead of NotImplemented

Change-Id: I6ba5e21c801f724f216298d383a523f7dd865d6a
Make the examples documentation more relevant

Instead of just linking to the examples source tree
provide a list of recommended examples (in order of
my perceived complexity) that can help new comers
view examples in a more organized and relevant manner.

Change-Id: I9f6d15fb042e3fe67fd29a9c331fc779c254241c
Merge "Fix the section name in CONTRIBUTING.rst"
Merge "Simplify identity transition handling for tasks and retries"
Merge "Raise NotImplementedError instead of NotImplemented"