Cleanup invalidation annotation

To prepare for #117 i wrote some more functional tests. One big wtf though.

Also split the tag specific controller into a separate controller for better readability.

And make InvalidateRoute explicit about expression.
doing the validation early to notice problems as soon as possible