moves messages into subfolder.
added in protocol classes to manage interaction with the server at a level below operations.
added in operations to wrap the new protocol classes.  This will allow us to make choices for the upcoming bulk operations as well as abstracting the cursor implementation for the commands that return cursors in addition to queries.
added aggregation command that uses a cursor when talking with a server >= 2.5.1
changed Cursor to implement IEnumerator instead of IEnumerable.
Changed return type in QueryProtocol and GetMoreProtocol to a CursorResult.