Don't compress assets in example project
Fixes for Python 3.3 compatibility, while retaining Python 2.7 compatibility
Import force_text as force_unicode in 3.3
Use assertEqual (which exists since at least Python 2.6) instead of the deprecated assertEquals
Replace django.utils.simplejson with json (which exists since Python 2.6)
Switch __unicode__ to __str__ and maintain backwards compatibility
Move scraper base classes to SayIt.

This module used to live in sayit.mysociety.org, but as it is of
more general use we're shifting it to sayit. It shouldn't be considered
to be part of a stable API at sayit though, so I've added a note to
that effect in the docstring of the module.

These scraper helper classes need a couple of extra python packages.
As these aren't necessary for every user of SayIt, we've put them
in a separate requirements file

requirements-scraping.txt.
Migrate from popit-django to django-popolo.

This involves six migrations:
* Add new PopoloSpeaker table
* Add speaker_new columns to Speech and RecordingTimestamp
* Migrate all speaker data from Speaker/Person tables to PopoloSpeaker
* Remove the old Speaker table and speaker columns
* Rename the speaker_new columns to speaker
* Rename the PopoloSpeaker table to Speaker
Add requirement for six.

This was already being pulled in by e.g. pyelasticsearch, but good to
explicitly state we're using it just in case that changes in future.
Instead of failing when there is an unknown Akoma Ntoso element, log an error
Allow scraper to put things inside a section.

Add a method to override to put the contents of a transcript into
a parent section.
Python 3 decode() fixes.

Need to decode() before running regular expressions, importing JSON, and
to do a str 'in' check ("Type str doesn't support the buffer API").
Remove caching from example project.
Remove direct django-tastypie dependency.

Use different working versions, for different versions of Django and
Python.
Allow code to run if tastypie is not installed.
Merge remote-tracking branch 'james/an'
Add option to skip files we already have.

Passing --skip-existing to the scraper will mean it does nothing
with files which we have already successfully downloaded and converted
to text.
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).