Fix for darner/kestrel compat, and a performance tweak

Some memcache protocol complient servers, such as kestrel and darner, may return a different key in the memcache response than in the request.
    
Example:
    
    Request:
        get some-q/t=2000/close/open
    Response:
        VALUE some-q 0 4
        test
        END


As far as the performance tweak, use binary pickle proto instead of default text pickle
    
the higher pickle protocol is binary as apposed to plaintext, and
supposedly handles new-style classes more efficiently. Local testing of
pickling a dict with 100000 members and pickling resulted in sizes of:

    proto 2 (highest) == 13759562
    proto 1           == 13759560
    proto 0 (default) == 27666669

and time.timeit (number=300) times of:

    proto 2 (highest) == 4.15094685555
    proto 1           == 4.28701901436
    proto 0 (default) == 31.95591712

So it is a win for both speed (with cPickle), and size (~50%), at the expense of being able to fetch a key from memcache and eyeball it -- which has occasionally been useful, but the performance tradeoff here is not insignificant.