RUBY-592 Initial Cursor implementation and specs

## Initial Cursor implementation
This pull request implements the basic functionality of a Cursor.  It is a client-side representation of an iterator over a query result set on the server.

A Cursor is created in a terminator method of a Scope.  For example,

    collection.find.limit(5).to_a

will create a Cursor and call #to_a on the Cursor.

## @todo tags

### Interfaces
The interface for selecting a node and sending a message to it is not clearly defined right now, nor is the interface to client.  The @todo tags mark places that need to be updated as the interfaces become defined. 

### Exceptions
The Exception hierarchy is still undefined so an Exception is used in place of a more precise and meaningful class.

### Less significant features to add later
For the time being, the follow cursor features have been left out and will be added later:
  * exhaust
  * explain
  * no_cursor_timeout option

#### Note that yard documentaiton will be added later, after intial code review