Implement fake clock for testing

[Tests](https://github.com/coreos/etcd/blob/master/etcdserver/server_test.go#L82) [shouldn't](https://github.com/coreos/etcd/blob/master/store/store_test.go#L300) [depend](https://github.com/coreos/etcd/blob/master/store/stats_test.go#L99) on `time.Sleep`. Consider creating/using a package that mimics time's interfaces so that we can run tests using simulated time.

Prior art: [Golang playground](http://blog.golang.org/playground), fleet's [FakeClock](https://github.com/coreos/fleet/pull/880)
@xiangli-cmu did you see this? Forgot to add a note about it. Do you think it is no longer necessary?