Issue 841: Remove ParameterInfoExtensions.GetCustomAttributes<TAttribute> (post 4.5 upgrade cleanups)
Code review feedback for SuppressFormsAuth post 4.5 changes.
remove duplication of data from ApiController and ControllerContext

RouteData and Configuration are stored in the request and are duplicated
in ApiController and ControllerContext. This makes writing tests for
controller hard as one has to set this information in two places.

Making UrlHelper sticky on the request so that it is easier to replace it
for cases where you don't pass it around (example odata).
Add support for route templates and route names to the HTTP verb attributes
add route template and name support to HttpDeleteAttribute.
Introduced MapHttpAttributeRoute and added basic functional tests

Add a basic unit test
spiking out the bare bones logic as AR used to have it.

HttpRouteBuilder now parses defaults and constraints and has test coverage.

improved route template parsing in HttpRouteBuilder

brought over built-in inline route constraints from AR.

fixed typos in comments and minor touchup.

other minor updates to comments.

renamed EnumHttpRouteConstraint to EnumNameHttpRouteConstraint to better differentiate its purpose from EnumValueHttpRouteConstraint.

improved constraint parsing regex so that the params groupd didn't capture the enclosing parens.

added unit tests for HttpRouteBuilder covering edge cases with regex params specifying chars that used as tokens in the route template.
Minor changes to HttpRouteBuilder and adding functional tests for optional parameters and default values
fixed style issues and borken test.

initial HttpRouteConstrintBuilder implementation used when parsing constraints from route templates.
Fixing build break
added unit tests for new http route constraints.

removed some usages of var
Adding InlineRouteConstraintResolver abstraction

Fix InlineRouteConstraint activation
nuked ParseExtensions, eliminated reliance on string ctor params for inline constraints, added type conversion before instantiating a constraint in constraint resolver.
Rewrite the route parsing to be Regex-based
restored code lost in merge related to generating constraints.

fixed edge case in parsing constraint definition parameters for regex constraints including a comma in the pattern.

modified inline constraint resolver tests so they tested the public interface rather than an internal method.
Fixing build errors
removed special-case check for regex constraint when splitting inline constraint arguments.

touched up comments
Adding comments to parsing regexes

Change the order of optional and default values to appear after constraints again

Rename several files, including the InlineConstraintResolver interface
renamed test to reflect the condition being tested.
Addressing code review feedback