Add type column to Speech

This will be used to store what sort of speech it was, so that we
can distinguish between 'narrative', 'scene', etc.
Default type to 'speech' if there is a speaker else 'narrative'.

And default it to 'speech' for anything with a speaker and 'narrative'
for anything else. This preserves the status quo as far as the forms
go. Later on we can implement type in the authoring interface.
Make speech css class dependent on speech type.

Instead of doing an if based on whether or not there is a speaker,
use the type of a speech to name the css class. This should preserve
the current classes based on 'narrative' and 'speech' for speeches
with or without speakers, but will allow speeches which have other
types to have sensible classes for the future.
Display speech type on the speech_detail page.

On this page I think we should display the speech type in full, as
it's the most detailed page for a speech.
Record Speech type in the AN importer.
Add a test for the AN importer.

Very basic for now, but at least with something there it can be
improved later.
Add speech types to shakespeare loader.
In BaseParser, set type if not set.

To 'speech' if there is a speaker, or 'narrative', otherwise.
Subclasses can avoid this behaviour by setting type on Speeches themselves.
A bit of whitespace tidying.
Add test for AN rendering of a basic section.

Note that formencode is now required for testing in order to compare
xml documents.
In AN, Output speech type rather than just 'speech' or 'narrative'.

Instead of always outputting 'speech' or 'narrative', output the
actual type of the speech, which could be 'question' or 'scene', etc.

If the type has been set to something not allowed by AN, render
it as 'other'.
Close tags in the AN view of empty speeches.

Fixes #343 - AN view of empty sections has missing closing tag.
The HTML was missing a closing tag too, but was being much less
fussy about it.
Set speech type to 'speech' in a Speech derived from a recording.
Fix bug in AN import with 'from' and namespace.

child.find() will only find the <from> element if the XML document has
no namespace. As it's a direct descendant, we can use hasattr instead
which covers both scenarios.

Also add tests to fix #318 and test a number of previous changes.