General Popolo json import script.

Rewrite and merge the Popolo json import scripts from SayIt Philadelphia
and OpenNorth to make a more general Popolo json import script which
works in an 'upsert' manner.

It should now update any existing entries and associated records, rather
than delete/recreate the identifiers/other names/etc. Also fix a number
of bugs.
Break popolo importer out of management command.

Break the Popolo importer out of the management command so we
can use it from the web frontend too.

The importer can now be created with an instance to import
stuff into, and this can be passed in from the management command.

It's also been updated to work with a single file or unpaginated output
like

http://scrapers-ruby.herokuapp.com/organizations

Some extra python packages are needed in order to download from Popit
using requests.
Only import persons.

Currently, persons are the only objects from popolo that sayit
uses, and they are imported as speeches.Speaker objects, which
are popolo.Person objects which are subdomain instance aware.

Rather than making instance aware versions of the other Popolo
object types, for the moment we're going to import only the
Persons.
Add view for importing persons from Popolo.

This page still needs linking in from somewhere.
Add some basic alert box CSS.
Placate flake8.
Work around Django <= 1.5 generic relations problem.

The ORM changed significantly between Django 1.5 and 1.6, changing
the way filters and therefore get_or_create work over generic relations.

http://stackoverflow.com/questions/22200791/django-generic-foreign-key-filtering-difference-between-v1-5-v1-6

This nasty hackery gets the Popolo importer working with Django 1.4.
I'm looking forward to removing it again when support for 1.4 is
dropped.
Add link to speaker import on speaker list page.