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