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

I'd say that it depends on the dataset at hand. If we have only one or two out of say, 20 that have the desired key then EAFP would incur a higher price. On the other hand you are right as well. But having *too many* `try/except` is ugly.