Add Abort functionality

Adding async.Abort, which is an exception that when thrown within a job
causes the job to immediately execute with only a logging message and no
callbacks executed.
Add clarifying statement to Abort docstr.

Add a statement to the Abort docstr indicating that only an info level
log message will be output upon Abortion.
In test_Abort, add checks on logging and start

In the test_Abort test, I added a check to ensure that Async.start() is
not called. Also, I added checks on logging.info() and logging.error()
to ensure that info is called and error is not.
Add logging intercept to test_Abort

Add a logging handler to the root logger that will throw an Exception
upon receiving a log message with an Error level or greater level.
Merge branch 'master' into add_abort
Retrieve and run app engine tasks from testbed queues

The purpose is to run full local integration tests with the appengine
testbed.
Move to test-stubs/appengine/queues.py
Rename test file
Use underscore in dir name instead of dash
Make test work again with new paths
Merge pull request #59 from johnlockwood-wf/config

Clean up config tests
Merge pull request #61 from johnlockwood-wf/config

Improve formatting for readability
Simplify clear_context() by creating a new instance

Make clear_context more robust by creating a new uninitialized state
instead of removing known modifications.
Also add a test for clear_context.
Change |= to "or...".  Add tests for _execute_queue

Others prefer a = a or b instead of a |= b for clarity, so update that.
Add tests for the _execute_queue() function containing the change.
Flip the order of the or statement and add tests

Python optimizes "or" statements so that the second part of the
condition is not executed if the first part of the condition is True.
Putting _execute_queue() first ensures that it always gets called.

Added unittests for execute_queues.
Add test for _execute_task with args and kwargs
Ensure tasks don't pollute os.environ

If tasks have a modified os.environ, raise an exception.
This is to help prevent tasks from interfering with each other.
Merge branch 'master' into queue_runner
No longer check if task modified the environment

We were verifying a user's async task did not leave os.environ in a
modified state after each task was run.
Since 3rd party libraries sometimes modify os.environ, this check
isn't easily enforceable.
Add Apache license header