* Instead of calling commands in a specific order, each field/value pair of the
query string call the commands with a regex matching the field. The main
consequence of this change is that query argument's order now matter.
* Added `c:distinct` command as well as `distinct` argument for for `c:join`. A
new function called `dcount` (to make distinct count) has been added for
`c:aggregate` and `c:annotate`.