pandas.io.gbq Version 2

closes #5840 (as new interface makes it obsolete)
closes #6096 

@jreback : We still have some documentation to work on, but we would like your initial thoughts on what we have so far. The key change for this version is the removal of bq.py as a dependency (except as a setup method for a test case). Instead, we rely entirely on the BigQuery python API. We also simplified to_gbq() significantly. Though it cost a few features, the code is much more manageable and less error prone (thanks Google!). Test cases are much more granular and run significantly faster. To use the test cases fully, a BigQuery project_id is still required, though there are some unittests offline. 
I suppose the `, ...` in col_order is not the real syntax? so maybe just remove that (it is a example, so does not matter it are only three columns).

But something else, if you want a specific column order, what is the benefit of using 

```
df = pd.read_gbq('SELECT col1, col2, col3 FROM test_dataset.test_table')
```
or
```
df = pd.read_gbq('SELECT * FROM test_dataset.test_table')
df = df.reindex(['col1', 'col2', 'col3'], axis=1)
```
instead of 
```
df = pd.read_gbq('SELECT * FROM test_dataset.test_table', col_order=['col1', 'col2', 'col3'])
```
Just asking, as I was wondering if this warrants a specific keyword (which is also not found in other `read_` functions)