Store assignments under next start hex instead of end hex.

Storing assignments under the first number *inside* the range and the
first number *outside* the assignment allows us to compare assignments to
neighboring assignments later on.

This change requires moving to new database cache version 0.0.3.
Add an option to compare different data sources.

This new option allows users to specify a country code and look at
similarities and differences between cached databases.

This feature was motivated from comparing MaxMind's non-country code A1 to
assignments in the RIR delegation files.  But the feature is universal and
not at all restricted to this use case.
Add an option to import local MaxMind files.

So far, the only option to import a MaxMind database was to download and
then import it.  For some use cases it's convenient to be able to import a
local MaxMind file without messing with the cache directory.
Merge pull request #49 from kloesing/compare

Please review and merge my branch to compare different data sources
Fix minor bug in database comparison.
Add a 9th and 33rd hex character to store new range ends.

Now that we store number ranges as start number to next start number, the
maximum allowed next start numbers are 2^32 + 1 and 2^128 + 1 which need
9 and 33 hex characters.

Example: If we wouldn't add that additional hex character, SQLite would
consider 2^8 + 1, or '100000000' in hex, to be smaller than 2^8, or
'ffffffff' in hex.  But if we write 2^8 as hex '0ffffffff', that problem
is gone.

This change requires moving to new database cache version 0.0.4.
Merge pull request #50 from kloesing/compare3

Please review and merge two fixes to database comparison code.
Make code look more like PEP-8.
Merge pull request #54 from kloesing/pep8

Make code look more like PEP-8.