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.