[Fixes #731] Add unit tests for ReflectedActionDescriptorProvider

1. Added tests that cover parameters in actions.
2. Added tests that cover building the reflected application model.
3. Added tests that cover attribute routed action constraints and default values.
4. Added tests that cover conventionally routed action constraints and default values.
5. Refactored and cleaned up ReflectedActionDescriptorProvider. All the refactors consist
   of extracting blocks of code to separate methods to better display the flow when building
   the action descriptors.
Take a look at these comments and figure out what goes inside the methods and what goes at the call sites. This needs some love because the code was complex but well-commented before. Now it's not-as-complex, but the comments need to make a comeback.