Initial commit.

This initial commit only supports the geo database for lookup, but it
sets the basic infrastructure down to support more.
cleaner to read to me with two calls instead of the merge