Initial FusionIndex implementation

Hi,

Here's my initial implementation of the FusionIndex class.

A few notes on the FusionIndex class itself:

- metadata are stored as separate rows per metadata item, with multivalue fields split into separate rows
- the class enforces the existence of required fields (as specified in the JavaDoc for the Index interface), and values in of discourse_types (as specified in jira LP-35).
- the class does not enforce a list of permitted metadata types; this is easy enough to add

A few notes on changes I've made, by class:

### GoogleAuth
- added a validateAccessToken static method, which validates an access_token against Google's servers
- added a refreshToken member and getter/setter
- added a refreshAccessToken method that requests a new access_token from Google's servers (assuming the refreshToken is set)

### Utils
- I moved gapi_connect from GoogleDriveStorage into Utils

Bob