Fix the sample to await when writing directly to the output stream in a controller.
[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.
Upgrade Newtonsoft.Json to 6.0.4 version
[Fixes #900] Use [Route(...)] on action methods to specify an attribute route that allows all verbs.

1. Changed attribute usage on RouteAttribute.
2. Added a test on action discovery to ensure that actions with [Route] get discovered as
   attribute routed actions.
3. Added a test on reflected action descriptor provider to ensure that an action with [Route] on
   the controller and [Route] on the action results in an action that allows any Http method.
[Fixes #739] Attribute Routing: Multiple routes per-action

1. Support multiple [Http*] attributes on an action.
2. Support multiple [Route] attributes on a controller.
3. Detect attribute routed actions during action discovery
   and return one action per [Http*] found on the method.
4. Build one action descriptor per [Route]+[Http*] combination
   in an action.
4. Disallow the use of [AcceptVerbs] and other IActionHttpMethodProvider
   attributes in attribute routed actions.
5. Disallow mixing attribute routed and non attribute routed actions on
   the same method.