Imported mongogo into repository.
New session.Find(...).One/OneM() and session.Run/RunM() methods.
Progress on finding, iteration, sorting, etc.
- Implemented support for Safe() and Unsafe() in the session.
- Better socket acquiring/releasing in the session.
- Some minor method renaming.
Updated cond interface to the updated version submitted
for inclusion in Go.
make gofmt
A few other minor tweaks.
Implemented session.Strong/Monotonic/Eventual methods.
Started implementing support for connection error handling and
primary switching.  Test still broken.  Time to sleep now.
- Prune dead sockets when attempting to acquire them.
- Prune an erroring server and immediately start a resync in the background.
- Shutting down the primary is now working.
- Introduced the -fast flag to skip tests which take too long to run.
Introduced new tests and related fixes to verify the behavior
of strong/monotonic/eventual consistency sessions while the
primary server is shot down.
- Fixed timeout test (behavior of Mongo seems to have changed).
- Fixed dropping of databases between tests.  Don't even know
  how it could be working before.
- Use exec rather than os.StartProcess to run external commands,
  so that stdout may be captured and shown on errors.
- Fixed primary shutdown test with monotonic session so that
  it necessarily connects to a slave.
- Removed the passive mongo server from the replica set 2, since
  it looks like it's hitting a bug in Mongo:

  http://groups.google.com/group/mongodb-user/t/768d36ac9919e953
Implemented socket and server closing.  Now sockets will not pile up
during a long cluster synchronization procedure.
- Introduced cluster reference counting, so that it may be
  deterministically finalized when all sessions referring to it are
  closed.  When the last reference is gone, all servers in the
  cluster are closed.
- Implemented session.Close().  It releases the socket, if any, and
  decreases the cluster reference count.
- Changed implementation of session.Monotonic/Strong/Eventual so that
  they do not create new sessions.  Use New().Monotonic() when that's
  the intention.  This makes the creation of sessions more explicit,
  and thus encourages the use of explicit releasing of resources.
- Statistics for sockets are not zeroed on ResetStats anymore, since they
  reflect absolute numbers which increase and decrease.
- Renamed stats.SocketsInUse back to SocketRefs, and reintroduced
  SocketsInUse with correct semantics.  They mean different things.
- Tests have been improved so that all sessions created are explicitly
  closed, and the suite teardown will error if any sockets are left
  alive by the suite.  No more messing around.
- Fixed problems discovered by the more strict socket referencing
  checks.
A couple of additional checks on the socket count on resync test.
- Implemented synchronization timeout for sessions.
- Fixed a bug on the way, which would prevent a connection to be
  established to a slave during sync in case the consistency setting
  did not require talking to a master.
- Also had to fix a bug in session.acquireSocket, which was ignoring
  the error returned by the call to cluster.AcquireSocket.
Minor documentation tweaks.
Use integrated Cond support.  Woohay!
Some doc updates in the session.
Implemented session.Update.