Expose an Encoding/Versioning interface for use with etcd

etcd_tools.go is not dependent on the specific implementation
(which is provided by pkg/api).  All EtcdHelpers are created
with an encoding object which handles Encode/Decode/DecodeInto.
Additional tests added to verify simple atomic flows.

Begins to break up api singleton pattern.
Fix unit test build.
Merge pull request #756 from smarterclayton/expose_encoding_versioning_interfaces

Expose an Encoding/Versioning interface for use with etcd
Merge pull request #764 from brendandburns/expect

Fix unit test build.
Don't hard code load balancer zone.
Don't use zone for regional load balancers.