Moved imports into functions that use them
closes #9713
closes #8327

Changes to be committed:
modified: pandas/io/gbq.py

Moved google api imports into functions that call them, removed unused imports. This fixes #9713 

cc @jreback @jacobschaer

I've tested this change and successfully pulled data from and pushed to GBQ with it.
 @jreback good point. I've moved the Python3 check into the function that checks for compatibility with the google API
 - can you rebase
- pls add a release note to 0.16.1
 cc @jacobschaer

can you give a test out pls.
 Rebase done and release note added.
 @cgrin looks like you merged in something else.

see instruction on git-fu [here](http://pandas-docs.github.io/pandas-docs-travis/contributing.html)
 Alright, that should take care of that. Not sure what happened yesterday. This closes #9713 and #8327 
 @cgrin the `_test_imports` is still called somewhere (and is failing)
 @jreback Looks like it's called in the test suite. Since the `_test_imports` function itself gone due to the imports happening on demand, should we remove this test? It's the `test_requirements` function (lines 32-36 of pandas/io/tests/test_gbq.py) raising the error, which is in turn called by each class in the file.
 We could also bring that function into test_gbq.py, removing the imports that are no longer necessary.
 you _can_ change the tests. The idea is to have a series of tests:
- that will allow importing of gbq and not call anything (e.g. to test that if the deps are not installed simply importing will not fail)
- use `to/read_gbq` with deps installed (which IIRC the ci does), but since we don't have credentials, they skip gracefully (e.g. the expected expections happen)
- 'real' testing, currently done offline only (as credentials are necessary) that actually tests functionaility
 Thanks. I opted to move this function into the test suite and remove the no longer needed imports. (Also rebased again as there has been some movement on the upstream repo). Hopefully this gets us where we need to be!
 Looks like I missed a couple imports there. Apologies, I'm having issues getting the tests to run at all locally. 686ee7e should fix the compatibility tests.
 @cgrin ok, looks good. if you could squash to a single commit would be gr8.

anything beyond the release note for #8327. e.g. would a user seeing this need to do anything? 
this is prob not back-compat, but 0.16.0 is broken anyhow.....
 Rebased one more time and squashed everything.

Regarding #8327, the `run` function has been [deprecated since at least June 2013](https://groups.google.com/forum/#!topic/google-api-python-client/s4r7NRmKE3w), so it's very unlikely that anyone would need to take any action. `google-api-python-client` already has a version requirement of 1.2.0, which was released in July 2013 and includes the `run_flow` function, so this is more of a cleanup to get rid of the warning on auth than anything else.
 merged via https://github.com/pydata/pandas/commit/2cf4132c6c30d0a26dd4fa316aaa7579a4fcc1d3

thanks!
