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.

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.