etcdserver: introduce Server interface

This changes etcdserver.Server to an interface, with the former Server
(now "server") becoming the canonical/production implementation. This will
facilitate better testing of the http server et al with mock implementations
of the interface. It also more clearly defines the boundary for users of the
Server. A NewServer convenience function is added to create the Server with
some default/production values.
My proposal is to keep this public and remove the `NewServer` function:
1. Ticker will also be configurable because etcd supports setting heartbeat interval. It could be a lot of arguments for this function then.
2. NewServer just does simple assignment, and adds a level of indirection.
3. http://godoc.org/net/http#Server is a similar reference for this.