tidy use of Moose: clean namespaces and make classes immutable
add namespace::clean to list of prerequisites
add exception classes
throw new DatabaseError exception from internal _try_run_command
add max wire/batch size attributes to MongoClient
add WriteResult class
split _make_safe to allow grabbing cursor with full results
add WriteSelector class
add private _get_pid function for testing
Implement most of the bulk API for version 2.6

This implements most of the Bulk API.  It does not yet include handling
of write concerns, backwards compatibility for pre 2.6 servers, or
documentation.

The test file closely follows the Bulk API QA test plan (QA-477)
Implement legacy bulk operation fallback
remove unused _split_batch function
clean up prerequisite detection/specification