Allow factories to be passed directly to ObjectPool

This patch modifies the `ObjectPool` base class so that, in simple cases, it can be passed factories directly without subclassing:

```python
pool = ObjectPool(10, create=lambda: MyObject())
```

If you like it, I'll add docs and whatnot.