Raising a useful error and adding a speccific tests

Fixes #506
Nope:

```python
>>> d = defaultdict(lambda : None)
>>> d[10] = 'foo'
>>> d.get('does not exist', 123) == 123
True
```