add support for custom commands in redis plugin

Now that the redis plugin has moved to hiredis, it could
be worthwhile to add support for custom commands.

This diff implements a mechanism for executing commands which
allows for setting the type and type-instance. It doesn not
support hash or array returns, but if this is deemed necessary
could be added later on.

The canonical use case for this is for people using redis
has a queue (for instance, using solutions such as rq,
sidekiq and similar solutions) who want a simple way to
ensure the work queue size is not growing. To address this
you would use:

```
<Plugin redis>
  <Node local>
    <Command "queue_length">
      Exec "LLEN myqueue"
      Instance "myqueue"
    </Command>
  </Node>
</Plugin>
```

This would then produce a redis-local/queue_length-myqueue value.

If the idea has traction I'll add the doc bits.
rename command to query
use consistent naming for arguments
Provide sensible default for configuration values

This reorders arguments a bit:

- The query is expected to be the block argument
- The type instance is inferred from the query if unsupplied
- The type will default to gauge if not supplied
Add documentation bits.
Merge pull request #816 from collectd/feature/redis-llen

add support for custom commands in redis plugin