Upgrade Smartdown to v0.4.0
Fix old-style Smartdown plugins

Previously a function was a lambda on state, that was called with state.

Since v0.4.0 a function is a defined concept, which can have arguments
and is parsed as a lambda on state that is called with the arguments
specified, eg

%{function_name(answer_1)}

This means we no longer need to fake out Smartdown internal state for
tests in an entirely different app, which is an improvement.
Merge pull request #1128 from alphagov/upgrade-smartdown

Upgrade Smartdown to v0.4.0\

The only breaking change for v0.4.0 was how plugin functions work, see https://github.com/alphagov/smartdown/blob/master/CHANGELOG.md

Previously a function was a lambda on state, that was called with state.

Since v0.4.0 a function is a defined concept, which can have arguments
and is parsed as a lambda on state that is called with the arguments
specified, eg