A few minor Go style suggestions.

Mostly minor Go style suggestions and my guesses at comments for exported methods, types etc. and I tried to tighten up a couple of the enums and I also renamed some of the enum values to be CamlCase rather than ALL_CAPS.
s/recurisvely/recursively/