Accept boolean values for UnitOfWork hints from Cursor
Rename CursorHydrationTest to CursorTest and test hydrations
Refactor Cursor to proxy all BaseCursor methods and maintain no state

This refactor ensures that the ODM Cursor never changes state, and makes it possible to later remove extension of the BaseCursor, implement Iterator, and only compose the BaseCursor. All methods that change the cursor state proxy to the BaseCursor, and we need not override methods that simply call the underlying MongoCursor, since both the ODM Cursor and BaseCursor maintain a reference to the same MongoCursor instance.

Additionally, by removing state from the ODM Cursor, we fix an issue with recreate() being unreliable.

This commit also adds a test for preserving sort order after Cursor::recreate(), which was contributed by @levofski in #635.
Merge pull request #638 from doctrine/cursor-wrapping

Refactor ODM Cursor wrapping of base Cursor class