Support optional route constraints in MVC

This PR
1. Adds tests for inline constraint
2. Fixes tests broken by Routing change for inline constraints

:+1: for the constraint type being tested. Also IMHO there isn't much value in starting the test case name with ```InlineConstraint``` because this is the ```InlineConstraintTests``` class instead consider naming your tests with what is being tested for example ```GetProductById``` does not tell me what is being tested.
Instead consider something like ```OptionalIntConstraint_AllowsValueToBeOptional``` and combine the ```InlineConstraint_GetProductById``` and ```InlineConstraint_GetProductById_NoId``` into a single test with ```[Theory]```.