refactor(PeerServer): Use a config struct in PeerServer
refactor(Server): Use a config struct in Server
refactor(cors): Break apart CORS data and middleware
chore(imports): Shift around some imports
chore(gofmt): Run gofmt
refactor(server): move listener init out of server.go
refactor(peer-server): move listener init out of peer_server.go
refactor(peer_server): move stats construction to factories
refactor(transporter): pass in timeouts
refactor(transporter): Pass in everything the transporter needs
refactor(raft): init raft transporter & server in main
refactor(cors): Simplify corsInfo struct
refactor(server): treat Server as an http.Handler
refactor(server): drop Serve code; rename cors object

* server/cors.go renamed to http/cors.go
* all CORS code removed from Server and PeerServer
* Server and PeerServer fulfill http.Handler, now passed to http.Serve
* non-HTTP code in PeerServer.Serve moved to PeerServer.Start
refactor(server): Remove ServerConfig struct
refactor(peerserver): remove timeouts from PeerServerConfig
refactor(peerserver): Remove PeerServerConfig.Path
refacotor(transporter): make TLS config explicit
refactor(servers): emit http.Handlers from *Server