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)
```

> But having too many try/except is ugly.

That's for sure! I'll take a deeper look on the code style but that may take a few days as I'm about to write some exams at university.