Fix return type for node_count (it's a uint64_t, not int64_t)
Remove various gross wrappers needed to pass $self->_tree() from Perl to XS

Now we get the tree directly from the object. It's not perfect since we look
at $self->{_tree} rather than calling $self->_tree() but it's an
improvement. I'm still trying to figure out how to make the method call work
from XS.
The node count is a uin32_t according to the spec we wrote
Work in progress on refactoring to support record merging

All tests still pass.
Merging records on collision works when the smaller network comes last

Making this work if the larger network comes last could be _much_ more
difficult given the way the system currently works.
Make iteration args a generic void * struct element

This makes it easier to genericize the handling of iteration at the C level
without adding elements to the MMDB_tree_s struct for every possible iteration
scenario. The downside is that this is a fun way of doing an end run around
C's type checking. Wait, that sounds like a fun upside!
Move shared test code to a library so Tree.t doesn't have to be so huge
Make dwarn function external
When iterating with a Perl object, only call process_*_record methods that exist

Add some error checking to iterate() and tests for it
Use gv_fetchmethod_autoload instead of gv_fetchmeth_pv_autoload

The latter is new in 5.16.0 and isn't really needed since our method name will
never include UTF-8.