PERL-336 createIndexes fix for additional error code
tidy use of Moose: clean namespaces and make classes immutable
add namespace::clean to list of prerequisites
fix memory corruption in Perl 5.19.1+
remove unused _split_batch function
remove Devel::Size from Makefile.PL and enable 5.19 travis smoking
fix compiler error returning a value from a void function
don't attempt SASL authentication without a connection

This lets the code fall through and fail with the same error as
a non-SASL connection failure.
Avoid fatal error in DESTROY with find_master and no server

If a client is created with 'find_master' true and no server is
available, the code was dying during DESTROY because that method
assumes a connection pointer is already attached to the object.

This commit lets DESTROY check the pointer without the fatal
error.
fix clock race in OID unit test
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
clean up prerequisite detection/specification