Fix using mutable/callable defaults

This pull request contains tests and fixes about using callable defaults, like:

```python
class CollectionTest(Collection):
    dict_field = ObjectField(default=lambda: dict())
    int_field = IntegerField(default=2)
```

(This branch is based on tahajahangir/master, see [network](https://github.com/tahajahangir/mongotor/network))