Fix all the things in object_pool_t. Again.

- begin() and co. would return the beginning regardless of whether it
  pointed to a valid, used object. This is fixed.
- Fixed some comments.
- Added ctors -- one is a nop, the other reserves storage for objects.
- Added make_storage and allocate functions.
- Added size function. Only returns the number of allocated objects.