Placate flake8.
Raise appropriate exception rather than Exception
Add a custom exception for scraping errors.

Let's collect together all the possible scraping errors and raise
our own exception (to save scrapers importing and excepting from
multiple places).
Split requirements into required/test/development.

This speeds up Travis tests and is a more appropriate use in setup.py.
Replace python-magic with Mutagen and wave.
South and popit-django are not required.

Without South present, syncdb will create up-to-date tables, which is
okay for a fresh install. A user of the SayIt app who uses South will
also have to install popit-django for the migrations to fully run
(unless they get up to date without South and then fake the migration
run).
Upgrade django-popolo and django-sluggable.

Python 3 compatibility improvements.
Merge branch 'requirements'
Fix overlap of speech links with text/border.
Some homepage search CSS from sayit.mysociety.org.

Tidy up display of example project homepage.
Tweaks for select2 CSS from sayit.mysociety.org.
More Python 3 fixes.

Need to decode() to do a str 'in' check in Python 3 ("Type str doesn't
support the buffer API").
Update instances requirement to get fix from there.
Homepage stats CSS from sayit.mysociety.org
Remove django-pagination.

Have local copy of its paginate function.
Fix pagination errors.

An incorrect way of catching multiple exceptions,
and evening up the use of the window.
Include realtime search processor in example project.

This is the easiest way to have db/search in sync.
Change --skip-existing to --process-existing

The default should be to skip existing files, to stop us getting
duplicate data by accident.
Move content row inside paginator where it is used.

Otherwise the no-content block is outdented incorrectly.
Remove django-pipeline as an install requirement.

Bundle the compiled CSS, along with some default template tags so it
continues to work with the same templates.
Remove all pipeline configuration.