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.
i noticed that the InvalidationSubscriber is the only one calling CacheManager::flush, so i guess we want that enabled whenver possible to reduce the WTF moments. now that we make expressions explicit, this should be fine - we only fail when people use expressions without having expression language.

note that includes/enabled.rst is now not correct anymore.

i suggest we also simplify the rules for the tag subscriber, it would also work without expressions now, right?