Make hmget and hmset use _traverse_command

To do this, i had to rewrote make_cache_key so it can handle dict
and list in args or as values of kwargs, recursively. So it can now
work with a lot of configurations.

I also had to cache management for RedisModel in the RedisModel itself
but also in memoize. (All cache, for the instance and its fields, is,
as previously, stored in the _cache attribute of the instance. To
avoid collision, cache for the instance is stored in the "__self__"
key while cache for fields use the fields names
Correctly reraise original exception in hmset
hgmet & hmset can know accept args as in redis-py

In redis-py, hmget waits for a list of keys to retrieve, not *args (
which is not consistent with the rest of their api)
In limpyd, we waited for *args, not a list.
It's now possible to use the both ways in limpyd: a list as in
redis-py, or as *args.

It's the same for hmset, waiting for a dict in redis-py, and for
**kwargs in limpyd. Now both ways are available in limpyd.
Disable caching hmget result

We don't want to cache the result of hmget because if a hset is done
on a field, the hmget cache won't be cleared and a call will return
an old value.

So we now have a new type of "_commands", "no_cache_getters", with
commands that acts as a getter, but always ignoring the cacheable
flag.

I slightly rewrite MetaRedisProxy to correctly handle all the commands
types, to be sure we have sets, and to allow user to not declare an
empyt if it will be empty (+doc on this _commands attribute)
Cache individual fields retrieved via hget
Merge branch 'master' into work-on-hmget-hmset
Update doc about arguments for hmget and hmset
Merge branch 'rework-commands-system' into work-on-hmget-hmset

Conflicts:
	limpyd/fields.py
Merge branch 'rework-commands-system' into work-on-hmget-hmset

Conflicts:
	limpyd/fields.py
	limpyd/utils.py
Revert "hgmet & hmset can know accept args as in redis-py"

This reverts commit 912d4b1cda1a9aeaa1fb619d0e8387e4e959d8a3.

Conflicts:

	tests/model.py
Revert "Update doc about arguments for hmget and hmset"

This reverts commit 0e2f430d04412c1d8cabe58b4798f51d1974cbb9.
Merge pull request #52 from twidi/work-on-hmget-hmset

Work on hmget hmset