rework post controller

To handle errors correctly the post controller needed some rework. Now
instead of single functions running all around the place, there is one
function collecting the data needed and raising errors when needed.

For that to work, the controller class can now return more classes to
keep the chain going. Unless a class is returned, it will call the
renderer.
convert the RouteNotFound route to a controller

This way RouteNotFound can use the renderer to display a more helpful
message in the design of the rest of the page.
add template for RouteNotFound