Add AbortAndRestart functionality

Add async.AbortAndRestart Exception that when raised, will cause the
Async to immediately stop executing, reset itself and reinsert itself.
Turn _restart function into a method on Async

Move _restart() from processors.py into a method in async.py as a method
on Async.
Fix update_options syntax in _restart and tests

Fix the syntax of setting _process_results. Also added first test for
_restart().
Update async._restart() tests

Add new test for async._restart() to test when a _process_result already
exists.

Also rename inner functions in _restart()
Add test_processors test for AbortAndRestart

Add a testcase in test_processors.py that ensures that when an Async
throws an AbortAndRestart that the async is reinserted.
Simplify AbortAndRestart procedure

Change processor.run_job() so that when it catches an AbortAndRaise
Exception it will call Async._restart() and return immediately.

Change Async._restart() so that it first checks if the Async is not
executing, then resets the _executing flag and calls Async.start().

Finally, update the tests to account for the above changes.
Update processor tests for updated restart

Ensure that error and success callbacks are not called when
AbortAndRestart is raised.
Enhance Async._restart() docstr

Fully explain the behavior of the Async._restart() method in the docstr.
Update tests again to ensure accuracy

Add test to check, that _restart() fails when the Async has already
finished. Plus clean up the docstrs on some more tests.
Add AbortAndRestart example

A small example handler that demonstrates the AbortAndRestart
functionality.

It creates and runs an Async with a payload function that has a 50%
chance to throw an AbortAndRaise Exception or complete successfully.
Merge pull request #42 from tannermiller-wf/abort_and_restart

Abort and restart
Fix callback mocks on test_AbortAndRestart.

The callbacks were not even close to being specified correctly before.
This has been fixed and the test is not more correct that it was.
Fix defaults decorator in grep example

Move defaults decororator from build_and_start to grep in order to
correctly launch the success callback.
Merge pull request #46 from tannermiller-wf/abort_and_restart_fix_test

Fix callback mocks on test_AbortAndRestart.
Merge pull request #47 from tannermiller-wf/grep_fix_callbacks

Fix defaults decorator in grep example
Add further explanation to abort_and_restart example
Fix the broken batcher example

The CAS needed to do a gets instead of get. Also needed to check to do an add
first as the cas will fail if the key doesn't already exist.

Also fixed a syntax bug in the javscript portion of the template.
Merge branch 'master' of git://github.com/WebFilings/furious
Merge pull request #50 from beaulyddon-wf/fix_batcher_example

Fix the broken batcher example
Merge branch 'master' into abort_and_restart_example

Conflicts:
	example/__init__.py