Admin utility framework and save to Google Spreadsheet

Also factor configuration schema, reading and writing out of the
hoops-listener.go command implementation and into the hoops package
at large.
Factor saving data and media into separate methods
Better saving to Google Spreadsheet

Wrap some abstractions around the Google Data API so calling code
is interacting with instances of spreadsheets and worksheets instead
of the protocol.

Implement the saving to spreadsheet using the HoopSaver interface.
Add "show" admin command

Add a "show" admin command that outputs the fields of a contributed
hoop in human-readable form.

To do this, implement the Stringer interface on Hoop/ContributedHoop.