Added a MongosClient which publishes common sharding-related functionality

It publishes methods to enable sharding, add/remove shards and shard tags, and display shard status. 

A test for it can be run by calling ```make check MONGOTEST=1 TOOLFLAGS="--cfg shard"```. This requires an existing cluster with at least one of the shards running on port 27017 and a mongos instance running on port 57017.

I changed the to_str implementation for OrderedHashmap to be more JSON-like. Is this stepping on any toes?