Parse infinity when returned by redis

Redis returns positive infinity as +inf or inf and negative infinity as -inf. Java's Double.valueOf expects +Infinity or -Infinity, so it chokes on those strings. This replaces all usages of Double.valueOf with a method that checks for redis-style infinity before handing off to Double.valueOf.