Refactor where form parts showing  is client side

Previous solution was quite brittle and leading to hard to maintain code. This
strategy renders entire form, but hides and reveals parts of it depending on
client side interaction.

It also manages showing "progress" client side via javascript event listeners.

Should make it easier to add validation and is less of an abuse of REST.

Javascript transitions could some love, especially for transitions.