Change how restarts are implemented

No longer use call to start to restart async. Instead, pass
AbortAndRestart up to top web handler where we return a 549 and let app
engine handle the restart.
Merge branch 'master' into restart_v2
Add retry limit logic

Wire it up so that we use the built in app engine task retry limit. This
is set up in the to_task method such that a TaskRetryOptions object is
created and passed into the Task.

This also includes a few tweaks the the test stubs in how they handle
headers.
Convert TaskRetryOptions to task_retry_limit

Convert TaskRetryOptions to task_retry_limit so that it can be json
encoded and propagated onto the next dict.
Removing debug logging
Move retry_options to to_dict

Move retry_options to retry_task_limit code into encode_async_options
instead of in to_task.

Don't name AbortAndRestart exception, just raise it.
Only encode TaskRetryOptions in to_task

Ensure that we only create and populate a TaskRetryOptions right before
we create the Task object.

Add tests to cover more cases.
Move logging to run_job from webapp
Add further testcases around task_retry_limit
Merge pull request #91 from tannermiller-wf/restart_v2

Change how restarts are implemented
Add DEFAULT_RETRY_OPTIONS

Add a DEFAULT_RETRY_OPTIONS constant and code to override it in the case
a custom value is set.
Increment the version to 0.9 and set to beta.

Getting close to stable and 1.0 release.
Merge pull request #93 from beaulyddon-wf/kick_to_version_zero_nine

Increment the version to 0.9 and set to beta.
Merge pull request #92 from tannermiller-wf/default_retry_options

Add DEFAULT_RETRY_OPTIONS