Control characters are not allowed in memcache keys (BC break)

It is currently possible to use any character as a part of memcache key. This should not be allowed (according to memcache specification https://github.com/memcached/memcached/blob/master/doc/protocol.txt#L48 "the key must not include control characters or whitespace."). This causes problems even in the vanilla installation, as Cache class is using `\x00` as a default namespace separator.
The issue of disallowed characters is already tackled by FileStorage which deals with it by urlencoding the $key before using it. My solution is pretty much the same, I urlencode the $key before using it.
This solution may cause BC break in custom MemcacheStorage child implementations (that extend from MemcacheStorage).