Updated tests to use transactions and start and stop the Redis server

Use the RedisTransaction object to execute the commands (see http://redis.io/topics/transactions for definition of Redis transactions which are different from relational transactions).

Added a project.json file to EntityFramework.Redis.FunctionalTests so that those tests will run automatically. However you will have to have redis-server installed for this to work. The code looks for an running Redis server and uses that if present, or it will start (and stop) one if you've installed it and have configured the tests to look for it correctly. Otherwise the server is not started and the tests are not run (similar to the ATS tests).
I did originally do it that way but I intermittently got some strange "unable to connect" exceptions which seemed to be the result of the test running on a different thread in the VS execution engine and the timing of the Dispose() of the class fixture. I found that when I put the start-up/tear-down code in the XunitTestFramework I no longer saw those issues. Plus it seemed like it supported the future - where there will be many more such tests potentially running in parallel and I only want to start one server for the whole set no matter how many class fixtures there are.