more lenient `find_one` behavior

When a collection does not exist it will return `None` as well as when there are no results found.

Tests are added for the new behavior using `py.test` fixtures, that mimics the `setup` and `teardown` methods
that were used in the other Testing classes. I did not updated those to avoid feature-creep in the PR but it would
be nicer if that happens at some point.

Fixes issue #1