8.0 base location geonames import

Starting from @alexis-via [MP](https://code.launchpad.net/~akretion-team/partner-contact-management/base-location-geonames-import/+merge/214564) and porting to 8.0
- using new API
- adding tests
- refactoring with ```select_or_create_state``` in order to [create states if they don't exist](https://code.launchpad.net/~akretion-team/partner-contact-management/base-location-geonames-import/+merge/214564/comments/538000)

The new ```select_or_create_state``` also allows to be extended using different CSV fields for states
It does.
Just commited https://github.com/eLBati/partner-contact/commit/9e426a0226d042099b6d60d6a3b57cc5f393c9ce
Thanks @hbrunn