Bugfix on error handler & added allowLargeResults for table write

Regarding `func:wait_for_job`

1) There is no `jobComplete` in response for jobs.insert api. We can use `job_resource.get('status').get('state') == u'DONE'` to determine if job has completed

2) `job_resource.get('error')` won't retrieve any error message. We can use `job_resource.get('status').get('errorResult')` to get the error message.

For illustration, here's a short excerpt of a response with error (unicode removed for readability). 

```
 "status": {
     "state": "DONE",
     "errorResult": {
         "reason": "responseTooLarge",
         "message": "Response too large to return."
     },
     "errors": [{
         "reason": "responseTooLarge",
         "message": "Response too large to return."
     }]
 },
```

you are right that line won't work. It seems that there are 2 kinds of error we need to handle. 1) Error in API request where http response != 200 2) Error in result. I will sent an updated fix tomorrow.