Add an Identifier model for external IDs

This will replace the external_id and original_id fields,
which will be removed in the next commit.
Don't return falsy external IDs (e.g. empty strings) from current_positions_external_ids
Remove the current_positions_external_ids method

This was only needed for scripts specific to the last
Kenyan election and would need to be rewritten anyway to
use Identifier instead of external_id.
Remove the old original_id and external_id fields
Add a script to import Popolo JSON into Mzalendo

Note that there are various FIXMEs throughout this script.
In migrations, don't assume any (Place|Organisation)(Kind)? exists

Migration 0037 makes the assumption (if you have the 'nigeria' or
'kenya' COUNTRY_APP) that certain Organisation, OranisationKind
and PlaceKind objects exist, which it shouldn't do - this means that
if you have COUNTRY_APP set to one of those and migrate from the
start with an empty database, this migration would fail.

This commit changes each 'get' of one of those objects to a
'get_or_create', fixing #644.
If the Kenya (Country) Place is missing, skip migration 0038
core_import_popolo: Print the parameters before trying to create an object
Temporarily set THUMBNAIL_DEBUG to True, so we get errors
core_import_popolo: Also import pictures of people
Add some links to people and organizations
core_import_popolo: an option to remove all old positions & contact details for imported people
core_import_popolo: create more helpful (but .za specific) position titles
Fix unicode URLs by encoding to UTF-8 and percent-encoding
Only output an informational message when VERBOSE is True
Check that we're not missing new or surprising fields
Fix: actually set the place on positions
Deal with the other_names field of people
Note that start/end_reason can't be properly dealt with yet
Make the menu bar slightly more useful