Add support for nested dicts (see #10)

As discussed in #10, these changes add a `has()` function:

```python
db.search(where('key').has('x') == 2)
```

... will match on

```python
{'key': {'x': 2}}
```

Nesting it is supported, too:

```python
db.search(where('key').has('x').has('y').has('z') == 2)
```

Actually, I've read the opposite<sup>1</sup>. Sure I could use `hasattr`, `isinstance` and friends but using `try-catch` will only create overhead when the element we test doesn't contain the key or has a value instead of a dict (see following lines in the diff). Explicitly checking on the other hand would create overhead in any case.

<sup>1</sup> Source: https://docs.python.org/2/glossary.html#term-eafp