Add a Kind helper function

This is important because the recent change in Key in
a0fb89e8d950f972170506508c2bbadf815c0708 broke incomplete keys. So things
like g.Key(&User{}).Kind() would panic with a nil reference error.
Correct docs for Key
Allow empty string IDs in getStructKey

extractKeys can do incomplete checking. Thus, it should be the only one
doing the checking instead of having other functions also enforce it.

Reverts part of a689b30a57812c1cfac51e9dfec7a7cf47e4b390
errors.New -> fmt.Errorf
Add incomplete-key-is-ok test
gofmt
Remove PutMany: needless wrapper
Remove PutComplete

This kind of functionality should be done by the programmer.
Correctly prevent Put with an empty string id
Better control variance docs
Incomplete keys aren't errors
No need to .Error()
Chill out if we're a timeout

Needed after the control variance stuff.
Nope, only chill out if it was a variance timeout

This allows other timeouts to freak.
Merge branch 'master' of git://github.com/mjibson/goon

Conflicts:
	entity.go