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.
`ReadOnlyCollection` doesn't take `IEnumerable`, just `IList`