style(panic): reworked the use of panic throughout etcd

panic was being used heavily in tests which obscures where in the
lifetime of a test the code failed. By using t.Fatal in tests, we can
better identify the source of failed tests. Also, using log.Fatalf
instead of panic inside of application code allows us to add more
context to a failure while achieving the same result.