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

@msiemens perhaps you should resort to checking using functions instead of catching exceptions. Exception catching is quite expensive and quite *dirty* in my opinion.