Add basic error handling for start on Async.

Switch the insert task logic in Async.start to match the context insert_tasks
function by handling some standard queue exceptions.
Have Async.start retry on TransientError

When hitting a TransientError Async.start will now try to re-insert the task.

Also added tests for the error types.
Merge pull request #29 from beaulyddon-wf/update_async_start

Add basic error handling for start on Async.