Add PluginFactory

The PluginFactory looks for plugin files defined in
/lib/smartdown_plugins which correspond to a flow
slug. The idea is to be able to only include plugins
needed for a given flow.
Plugins automatically loaded and applied to flows

This wires in the PluginFactory. Plugins can now be
defined in /lib/smartdown_plugins. Plugin files should
be named after the applicable flow (with .rb) and should
implement a module (doesn't matter if namespaced) with
the same name again. Any singleton methods on that module
will become plugins.
Update SPL plugins to use new plugin format

and fix some test issues.
Undo response-period id change
Merge pull request #1147 from alphagov/add-plugin-factory

Add plugin factory - plugins specific for each flow
Fix compare task and remove common flase-errors

- Transition flows now have '-transition' appended, by convention,
  which means the flows don't share the same slug. Update the helper
  to be aware of this and pick the non-transition flow to compare
- Remove some false positive diffs:
  - Exclude sidebar, breadcrumb and analytics content from diff, as
    only the non-smartdown flow will have a real sluf, with related
    content for those areas
  - hide the '-transition' URL differences
Strip trailing new lines from yml-govspeak input

This was causing false-positives in the Smartdown transition
comparison tool, where YML content had (many) extra trailing
new lines.

They should be non-content affecting, so this won't
change any rendering behaviour, but will normalise the output
Upgrade Smartdown

This fixes a bug with previous question page titles and
removes some variable whitespace that was causing false
positives in the compare task