moving global filters to options

The rabbit hole went pretty deep on this one, I found a small bug and some untested code that needed some love.

The bug is that when the controller is a filter, it's treated as having the default order of `0` instead of `int32.MaxInt` which it's supposed to have. Added some tests for `DefaultFilterProvider`.

I also added a minimal functional test for showing the order in which filters appear in on the descriptor. This area needs more tests for filters actually executing, but this PR is big enough.
This is for back compat. If the controller is a filter, then it runs "closest" to the action. We always intended to restore this behavior, we just didn't do it correctly.

You can implement `IOrderedFilter` and then you get control, but we default to what's compatible with 5.0.