Fix for multidimensional eval_points in decoder caching.

Attempted to hash Numpy array.

Now we turn the eval_points into a tuple if they're not None.  When we compare eval_points to see if they're already known we first check that both sets of eval_points aren't None, followed by returning the tuple to an array and checking as before.