Initial check in of XS code

This compiles but I can't get it to load. I'm checking this in so folks in
Check for uthash.h header
Need to pass -lbsd as a linker flag, not a compiler flag
Update ignore list
Add another entry to .gitignore
More work in progress on XS code
Rename Tree::InMemory to just Tree
Use Perl hash for data table rather than uthash

Tests pass for inserts & lookups.
All Tree.t tests pass except node count test for duplicate inserts
Fix duplicate insert tests

I'm not sure how these ever passed since they don't seem to make much sense
(if we insert more than 2 networks we'd have more than 2 nodes in the tree).
Implement data record merging.

When a node would end up with two records pointing to the same data we instead
want to move the data record up to the parent node. This can greatly shrink
trees that would otherwise be pointlessly large.
Treat data hash keys as binary, not strings.

This lets us use Sereal output directly without running it through md5_hex().
Use the right magic incantation for getting the bytes and lengths out of SVs, per #p5p
Clarify comment
Moved some InMemory tests to new Tree module and deleted others

The ones I deleted were testing for bugs specific to the Perl implementation.
Fix start_iteration to actually use the callback passed to it
Outputting the tree seems to work now

This requires more tests, but the first test I converted is passing, which is
a good sign.
Move Tree output tests to their own dir
Require next version of MaxMind::DB::Common
Integers stored in the search tree need to be in network byte order