Tiny fix in worker
Fixed GoogleAPI.delete_task

By passing the project id in with s~ prefixed.  API is up to the usual
google experimental standard it seems.

Shout out to this blog which helped me find the issue:
http://pokusak.blogspot.co.uk/2014/03/google-task-queue-rest-api.html

Also updated the JSON parsing function to deal with error cases.
Fixed GoogleAPI.release_lease()

A few issues:

- The task POST endpoint expected the task data to be sent down as JSON.
- The endpoint also didn't like the queueName on the task as it was sent
  down by the lease endpoint.  Had to trim it down to just the short
  queue name, rather than the full path the lease endpoint provides.
  (e.g. "pulltest" instead of "s~application/taskqueues/pullqueues"
   or something)
Created internal Elk.Task record.

Record plays nicely with Inspect protocol, and has it's own protocols in
GoogleAPI for translation to & from the GoogleAPI HashDict.

For the sake of simplicity I'm just storing the HashDict in the record
itself.  Means we don't have to make the record extensive, just extract
what we need, then just send the original data back to google.