Refactor Updating Stages

When bringing stages in line with the new hash thing, there were some issues with mutations and how it read a stage and a stage id.

That's kind of being worked around in the controller, keeping the API functionality largely the same.

Issue is here https://github.com/cypriss/mutations/issues/85

# What's changed
* Added actions to stages, and checking that stages are valid.

# What's next
* Add actions on the front-end.