[#79509870] Remove a module when creating

This works in a similar way to adding a module. The module is removed
from the pending_dashboard in the session and the form is redisplayed.
Refactor prefix method to take prefix as an arg

This method can be reused for moving a module up and down a page as
well as removing it, so make it more generic.

Return a dictionary rather than a string. This dict includes the
prefix that we were using previously as well as the integer index
of the field we want to operate on, which we'll need to move
modules around.
Fix bug around removing middle module

If any module other than the last was removed the indexes were not
resequenced.
Add ability to move modules up and down

Only implemented for create so far
Remove verbs from dashboard-admin URLs

New layout is
GET  /dashboard-admin                 - List dashboards
GET  /dashboard-admin/new             - Show form to create a new dashboard
POST /dashboard-admin                 - Create a new dashboard
GET  /dashboard-admin/< uuid / slug > - Show form to edit an existing dashboard
POST /dashboard-admin/< uuid / slug > - Update an existing dashboard
Add move and remove to edit route

Add the move and remove functionality previously just in the create
route to the edit route. This duplicates the functionality in both
routes ready to be removed in later commits.
Merge dashboard form routes

Merge the edit and create dashboard form displaying routes;
/administer-dashboard/new
/administer-dashboard/<uuid>

They do essentially the same thing.
Merge dashboard create and update routes

Merge the create and update dashboard routes;
POST /administer-dashboar
POST /administer-dashboar/<uuid>
Remove spurious TODO comments

uuid is being used and the field is indicated in the message
Extract out form change redirects into decorator

This is mostly common logic for update and create and it's slightly
confusing to mix into the actual update logic (the post to stagecraft)
Revert "Remove reference to Redis"

This reverts commit 5202f136a4886def5580928019fce9805e5bbf26.
Re-add Redis session

Cookies have a size limit of 4096 so reintroducing the Redis session to
allow larger dashboards to be edited.
Delete dashboard session on edit form

The 'pending_dashboard' session variable is used for passing saved state
from the create / update routes back to the form rendering routes. As
such it should only live for that single request. If the pending
dashboard stays in the session beyond that we risk showing unexpected
(and arguably incorrect) data in the form in certain situations. For
example, if a user goes back to the list page before saving and then
clicks back into the same dashboard the data shown would not be the data
that's stored in stagecraft but stale data from the session.
Merge pull request #63 from alphagov/new-move-and-remove

[#79509870] Move and remove a module when creating