Implement wire protocol in pure Perl

This is not portable prior to 5.10, so this is likely to be temporary
and we'll probably want to make pack templates variable based on
architecture.  E.g. little-endian is fine on 5.8, but big-endian will
require 5.10 for pack features to fix endian.

It's also not not portable to 32-bit systems, but we can fix that easily
later by making cursor IDs opaque once we control the end-to-end
query/reply process in pure Perl.
add first draft of _Link class
Implement pure-perl Cursor and connections

Also:

* adds better diagnostics to BSON errors by providing a stack trace when
  an exception is thrown.

* throws errors when queries fail

* replace connection holder with a direct proxy of master's link

A number of tests have been marked TODO.  We will fix them once we
implement a proper cluster/server abstraction in accordance with the
cluster monitoring spec.
Remove unused C and XS files
support protocol pack/unpack back to 5.8, except on big-endian platforms

Big-endian platforms require Perl 5.10 for proper endianness modifiers
on pack.