[Fixes #885] API Explorer: Link Generation

1) Expose the simplified relative path template by cleaning up constraints, optional and catch all tokens from the template.
2) Expose the parameters on the route template as API parameters.
3) Combine parameters from the route and the action descriptor when the parameter doesn't come from the body. #886 will refine this.
4) Expose optionality and constraints for path parameters. Open question: Should we explicitly expose IsCatchAll?
I think the path here is relative to the app root. I don't see an easy way to get the base path from here. For display purposes the user can easily get access to the app root through the request and compose the full path for display or serialization.

I also think it's more readable to just have the path be relative to the app root.