Address remaining comments from #756

Rename Encoding to Codec, Versioning to ResourceVersioner.  Add
GoDoc.  Add Delete(key, recursive) to EtcdHelper
I'm not sure how I feel about having the exact same interfaces defined in multiple places. I like that it removes dependencies, but I don't like the duplication. What do you think about putting some of these in a package that both api and tools depend on? I think the Conversion package is a good place for the Codec interface, since conversion.Scheme already implements it. ResourceVersioner arguably belongs in the tools package, but that makes the dependency chain weird...