Match fun

...so that they play nice with pipes and other variables.

Before:

```
iex(7)> query = [id: 1]
[id: 1]
iex(8)> User.match(query)
** (Protocol.UndefinedError) protocol Access not implemented for {:query, [line: 8], nil}
     (elixir) lib/access.ex:1: Access.impl_for!/1
     (elixir) lib/access.ex:33: Access.get/2
    (amnesia) lib/amnesia/table/definition.ex:35: Amnesia.Table.Definition."-match/3-lc$^0/1-0-"/2
    (amnesia) lib/amnesia/table/definition.ex:34: Amnesia.Table.Definition.match/3
              iex:17: Test.Database.User."MACRO-match"/3
              expanding macro: Test.Database.User.match/1
     (elixir) iex:8: :elixir_compiler.__FILE__/2
```

Now: