Refactored and modernized query result class
Refactored DBAPILayer.Result inner class to be static
Refactored DBAPILayer.Result static inner class to be a top-level class
Refactored Iterator<DBObject> __find(...) methods in DBCollection to QueryResultIterator find(...).  This simplifies a lot of callers who were casting to QueryResultIterator.

Conflicts:
	src/main/com/mongodb/DBCollectionImpl.java
	src/main/com/mongodb/ResultsCursor.java
Using ternary operator instead of conditional in DBCursor
JAVA-1091: Always set awaitData if tailable is set, and ensure that hasNext() blocks until either there is another available document or the cursor is no longer valid.
JAVA-970: Rename MongoCursor to Cursor, override close to not throw IOException, and make DBCursor implement Cursor.