add test coverage to 'components' param
Refactor to move manipulation outside .geocode()

It's not exactly a params class, but it moves nitty gritty details out
of the way.