Adding BatchGeocode and SetAPIKey functions

Also regrouped the structs to organize them more logically and some minor refactoring to improve the code.