Cache_redis: Adding serialization support.

This is an alternative implementation of value serialization for Redis cache driver. It is the third idea that appeared at the discussion about https://github.com/EllisLab/CodeIgniter/pull/3181

Now the driver has an internal cache for storing keys of serialized values, in order these serialized values to be distinguished.

I tested it with the same test of mine, it looks OK.
I think, array_search() checks either should stay both, either should go both. I did them, because somebody might do these commands within a single request for a same key:

save NULL (Redis should return an empty sting later)
save array
get

Without updating the internal index, the last get will return a serialized string instead of an array.

This sequence of commands (within a single request) looks weird for me, not so probable, but someone might hit it. Also, for save() operation I am not so sensitive about performance.

I see two options: to remove both of array_search() checks or to leave them as they are now. What should I do?