Add better schema errors

It's hard to find where in a big record there's an invalid key.  This commit
adds more meaningful exceptions.  For example:

>>> BigQueryClient.schema_from_record({"a": {"b": [{"c": None}]}})
Traceback (most recent call last):
...
bigquery.schema_builder.InvalidBigQueryType: Invalid type at key 'a.b.c': None
Simplify API

Providing all the top-level methods in the bigquery module, and updated the README.
Merge commit '05ea0db09bebbc877cd893e2d968069f190f439b'
Merge commit 'b8454a368cad47a8111ec9871f6cc69a13fd9e93'