Added tests for Model/Collection fetch()

@MarrLiss:

I added 3 tests for `fetch()` (one for `Model.fetch()`, one for `Collection.fetch()` and one to ensure that they don't interfere with each-other, even if invoked in immediate succession).

I also added a `teardown()` handler so that the tests clean up after themselves. This prevents the DB from growing every time you run the tests and provides much better test isolation.