Removed unused method createUSStatesAbbreviation()
Added location update script

- Added a database update to clean up the current data first
- Added a cli command to compare the new location data to the current one
- Requires the file "GeoIPCity-134-Location.csv" to be present in the working directory
Merge branch 'master' of github.com:cargomedia/CM into issue-900

Conflicts:
	resources/db/update/21.php
Re-added lost update script
Downloaded GeoLite data by default

- If paid database is missing
- Conserved downloaded files for at most one week
- Read GeoIP data directly from zipped files
Logged fatal errors

- Added shutdown function registered in CM_Bootloader
- Logged last error via CM_ExceptionHandling_Handler::handleException()
Identified cities with updated region

- Fixed identification of regions with updated code (several regions with the same name in the database...)
- Identified cities with updated region
- Should still update listing of deleted/added cities accordingly
Refactoring

- Introduced helper functions for retrieving region names
- Split up analysis and info for city changes
Improved determination of added/removed cities

- Considered cities moved from one region to another
Renamed default CI database and user
Add Location Country, State, City and Zip classes
Separate composer factory pieces from installation
Allow passing dir_root to CM_App_Installation
Allow package without modules, add dirRoot getter
Adjust ComposerFactory (add all dependencies)
Merge branch 'master' of github.com:cargomedia/CM into issue-900

Conflicts:
	library/CM/ExceptionHandling/Handler/Abstract.php
	library/CM/Model/Location.php
	resources/config/local.ci.json
	resources/db/update/23.php
Merge branch 'master' of github.com:cargomedia/CM into issue-900
Used getter for tmp directory

- Introduced in 006c6c8
Added db upgrade for countries

- Ignoring removed countries
Renamed regions

- Stored ids of added countries