Extract the test runner from etcd.

@xiangli-cmu @philips Here's the extracted test runner. I split the individual tests out to separate files so it'd be easier to manage. There are some docs on the README. Let me know what you think and then I'll submit a PR for removing it from `etcd`.