support reading of binary byte strings via configuration of appropriate encoding

csredis is great in its close mapping of the Redis API to C#. The mapping of binary safe Redis strings to UTF8 encoded C# text strings limits the applicability though. On can generally not write and read back binary data, such as image data or serialized data structures.

The recent additions to csredis indicate that there is interest in supporting binary data as well, so far for writing. This pull request addresses the reading. There finds several possible solutions to overcome this limitation.

RedisClientTests.RedisStringTests.TestRawBytes bypasses RedisReader and directly accesses the raw bytes. The drawback of this solution is that the simplicity of the direct mapping of the Redis API is lost.

Another solution might be to extend the Redis commands. For instance one may extend RedisClient with
```C#
        public byte[] GetRaw(string key)
        {
            return Write(RedisCommand.GetRaw(key));
        }
```
and RedisCommand with:
```C#
        public static RedisBytes GetRaw(string key)
        {
            return new RedisBytes("GET", key);
        }
```
in order to read byte arrays. This solution is limited to special cases. For instance it does not work for MGet, because RedisReader.Read always encodes bulk messages as text strings. The solution does neither apply to pub/sub messages.

This pull request proposes an alternative solution: it makes the string encoding of RedisReader configurable. Binary byte strings can be treated as C# text strings if the encoding supports 8 bits per character and if the number of bytes is the same as the number of characters. It appears that the old Windows-1252 encoding has these properties.

The changes are:
- RedisReader accesses the already existing RedisConnection._encoding
- reader functions that end with UTF8 are renamed to end with String instead (e.g. ReadBulkString instead of ReadBulkUTF8)
- RedisClient offers the configuration option Encoding that sets RedisConnection._encoding (don't know if RedisClient is the best place for this or if the encoding should be configured somewhere else)
- RedisClientTests.RedisStringTests have been extended with TestByteString for the configurable encoding

The default encoding remains UTF8, which is great for international characters. Alternatively one can now configure e.g. Windows-1252, in order to treat binary byte strings. When the encoding is changed to binary safe, then one can still have international characters by applying UTF8 encoding before passing the byte string to csredis. 

The solution works alike for get/set, mget/mset and pub/sub.

Would it be possible to accept this pull request or to otherwise support binary byte strings in the nice Redis like API of csredis?