Create AbstractCommand and improve CountCommand reporting

AbstractCommand adds support for all MongoClient constructor arguments for all commands.

CountCommand explain output for sharded clusters was incorrect (commands cannot be explained like queries). Instead, print its full command response, which should show sharding information.