Add output range based overloads of readUntil() and readLine().
Refactor RedisReply into a typed output range.

 - The code hasn't been runtime tested, yet!
 - All bulk replies can now be typed - this later will have the advantage of avoiding memory allocations
 - The return value of a redis reply is now defined to potentially point to a temporary buffer
 - hasNext/next are kept for backwards compatibility, always duplicating the data to avoid memory corruption issues