Made GetMulti() fetch requests in its own goroutine to speed up requests that are over the GetMulti limit in the datastore

TODO: PutMulti & DeleteMulti
Fixing a number of errors in my implementation pointed out by @xStrom and @mjibson
finished the concurrency work on PutMulti and DeleteMulti
Additionally added the feature where PutMulti will return an appengine.MultiError if it was only able to partially write the results
Merge branch 'master' of https://github.com/mjibson/goon into concurrentmulti

Conflicts:
	goon.go
moving putMemory in PutMulti to be called on an individual struct basis which makes it possible to do so inside the goroutine that does the put call
making putMemcache more idiomatic go code and fixing bug
Updating Get/Put/Delete Multi so that all errors are returned in a MultiError so no operations (and errors) are swallowed
This does mean that none of those methods can return general appengine errors for having a service disabled or being over quota which may cause the end user to retry operations that
they should know will fail.  The raw error is still logged however and returned inside the MultiError
Merge branch 'master' of https://github.com/mjibson/goon into concurrentmulti

Conflicts:
	goon.go
If MultiError in Get/Put/DeleteMulti contains the same type entry on each index, return the single error
If MultiError in Get/Put/DeleteMulti contains the same type entry on each index, return the single error
The single transactions of the datastore never return MultiError of length 1
Merge branch 'concurrentmulti' of github.com:mzimmerman/goon into concurrentmulti

Conflicts:
	goon.go
Merge branch 'master' of https://github.com/mjibson/goon into concurrentmulti
Merge branch 'master' of https://github.com/mjibson/goon into concurrentmulti

Conflicts:
	goon.go
Merge branch 'master' of https://github.com/mjibson/goon into concurrentmulti
Merge branch 'master' of https://github.com/mjibson/goon into concurrentmulti

Conflicts:
	goon.go
Automagically retry Put requests that fail on a Timeout error
This retries all Put requests, not just complete keys
Revert "Automagically retry Put requests that fail on a Timeout error"

This reverts commit 9f2745ea952f63dd6e127ba406ce93dfb802288d.
Merge pull request #20 from mzimmerman/concurrentmulti

Speed up Multi requests with concurrency that are over the datastore limit
Merge pull request #28 from xStrom/variety-input

Wider support of inputs for GetMulti
Added more supported data types to the input variance test struct.
Added a test for migrating data to a different structure.