BigQuery

## wip.

### Docs: https://stephenplusplus.github.io/gcloud-node/#/docs/master/bigquery

Carrying on from #262. Just opening this so anyone interested can follow along.

There's a time to throw and a time to pass an error in the callback. When the developer gives invalid data to our API, it's a throw. When the API decides it's an error, it's passed to the callback.

As an example, this user code wouldn't exist:

```js
bq.queryJob(null, function(err) {
  if (err.message === 'missing options') {
    // I didn't know I need an options object before, how do I know to look for the error?
  }
});
```