Made the XS reader follow the same API as MaxMind::DB::Reader::File

I "ported" a test from the pure Perl reader and it passes, but I had to make a
small change to the C library to avoid a double free.

This branch also fixes another issue, which is that for 64 and 128 bit ints,
the XS code was just returning a binary blob, rather than something usable
from Perl.

For now it returns a Math::Int128 object, but we will need to revisit that at
some point (there's a separate PT issue for that).
Use T_OPAQUE instead of T_OPAQUEPTR for the MMDB * type

The latter ends up copying the underlying struct, leading to issues when
freeing it. The former just uses the pointer _value_, so we only have one
copy.