Add --limit and --fetch-to-limit functionality

closes https://github.com/mysociety/pombola/issues/884
Fix apostrophes in (Members Statement) etc. closes #842
Allow spaces in parenthethes following names

e.g.

    The HOUSE CHAIRPERSON (Mr C T Frolick)  # temporary name
    Mnr P J GROENEWALD (VF Plus)            # party name inc. spaces

Close #25
Re-chunk badly chunked speaker lines

closes #26, fixing our incorrect assumption that *all* new speeches are
separated in the Word document by a line of whitespace.

Though most speeches are indeed separated by whitespace, counterexamples are
fairly common.  So you might see:

    Mr BOB SMITH: Blah blah

    Mrs JANE DOE: Blah blah (OK)
    Mr BOB SMITH: Blah blah (Not OK)

In this example, the 3rd para (Mr BOB SMITH's reply) will be grouped as part of
Mrs JANE DOE's speech.  This seems to be because when a speech starts on a new
page of the Word document, the scribes deliberately don't add a newline.

To disambiguate, we can simply check if the speech matches the name_regexp.  So
we let .break_paras() return not just True and False, but 0 (empty line) or an
incrementing counter.

(I would have used a closure for the counter, but Python's closures are
read-only, *sob*.  So I'm using external state and a method to update it, e.g.
.chunking_counter and .increment_chunking())
retry committee retrieval on http error
Correct ID used for saving committee json

Was wrongly using the *appearance* ID instead of the report ID.
(Grumbles at Python variable scoping that this isn't an error)
Add 1 second sleep to be more gentle to PMG servers
Move 1 second sleep to every call of processReport

Final tweaks for #1154
Retries for all urlopen calls

Additional tweak for #1154
Merge branch 'issues/884-limit-and-fetch-to-limit-flags'

Conflicts:
	za_hansard/management/commands/za_hansard_pmg_scraper.py
Fix mistake in merge resolution

bad programmer did not test merge, no cookie.
Merge branch 'issues/pombola/1111-parsing-issues-speaker-and-speeches'
Add extra level of folders to package_data.

The current glob, test_inputs/*/* matches test_inputs/hansard/0 which is a folder, but setuptools is expecting files. This therefore fails, and the package can't be installed.

Extending it to /*/*/*/* is neccessary to match the files in test_inputs/hansard/0/1.
Turn on doctests in nose.
Add warning that pdftohtml required in tests doesn't match that on our servers.
Remove unused import
Add 'the ' to expected output for question sections.

In 251e8b42904f8b16099208f29f1bb02a9b0393ea, a 'the' was introduced
to the title of sections containing questions, the test expected output
for the test needed updating to match.
Use unicode strings consistently for questions and answers to json.

We were being inconsistent on unicode/not for strings when creating
json from the questions and answers.

1) Make all the strings in the output unicode.
2) Call 'unicode' on the output of time.strftime calls as these
are inconsistent as in their own unicodeness (roll on Python 3).
Add model to represent batches of questions.

Questions are supplied in papers which contain multiple questions.
See http://www.parliament.gov.za/live/content.php?Category_ID=236
for a list of such papers.

This model is to allow us to store both the external (from the table)
and internal (from headers and titles) metadata of those files. The
hope is that this will help us in assigning answers to questions.

There should be only one questionpaper per (year/issue) combination
so we may as well constrain this in the database.
Tiny bit of PEP8ification.