Support optional route constraints in MVC

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

you could also think about breaking this out into `[MemberData(...)]` and using more parameters

`public async Task GetGeneratedLink(string controller, string action, string parameterName, string parameterValue, string expectedLink)`

Then you do your URL building inside the method, and the test cases themselves will be more readable.