Moved tests for src\Common classes to test\Common and included in projects by link to mirror what we do for the files under src. This puts all the tests for the src\Common in test\Common instead of being spread out.
Added HttpContent.ReadAsFormData helper for reading form data and return a NameValueCollection. The helper is a thin wrapper around existing functionality but saves a couple of lines for the developer to write.
Avoid logging model errors for invalid fields in value validation
Use Error Class instead of RS class in Formatting dll (bug 391361)
Removed duplicated tests
#68: Remove class BinaryDataModelBinderProvider from WebAPI
Addresses code review comments on HttpContent.ReadAsFormDataAsync
Fix ModelValidationRequiredMemberSelector to not try to get validators when the property's getter is missing or private
Without this fix, IsRequired might get called for properties that can be serialized/deserialized by formatters, but which model validation does not understand because it only deals with property descriptors. This additional check short-circuits the IsRequired method if we detect that there is no public getter.
Fixed RouteCollectionExtensions.MapRoute to work when defaults and constraints are dictionaries, currently method only works with anonymous types or similar
Also enabled System.Web.Http.RouteCollectionExtensions.MapHttpRoute (in both System.Web.Http and System.Web.Http.WebHost) to work with dictionary defaults and constraints
Corrected unit tests by replacing culture
#56: Per-Route Endpoint Message Handler
Fix UrlHelper to avoid adding a duplicate HttpRoute entry if one already exists
The previous string comparison was case-sensitive, but we need to perform a case-insensitive check because RouteValueDictionary is case-insensitive. Otherwise, we risk adding a second HttpRoute entry which will collide with the previous one when we add the entries to the RouteValueDictionary.
Added more tests on CookieState string representation to check that we handle special characters correctly.
Per controller-type configuration.

A controller may require a special service for basic operation. For example, it may require a special set of Formatters, IActionValueBinder, or other parameter binding services.
It may have wacky actions that require its own special ActionSelector to find and serve. But we don't have a good way to fulfill this need.
This was previously accomplished via  a smattering of techniques (HttpControllerConfiguration, DefaultActionValueBinder.GetFormatters(), etc).
We're trying to remove the patchwork of hacks and have a single unified way to do this.

This is mainly rallying around existing concepts and killing off half-baked concepts:
1.	HttpControllerDescriptor was already our per-controller config, but now we'll empower it with its own services container.
2.	The controller services normally just shadows the default services. But it also has copy-on-write semantics so that you can override individual services on it.
You can completely replace services inherited from global config / DI, or you can append to that list.  (this exercise also forced us to clarify our notion of single vs. multiple service in the DefaultServices).
3.  Replace the HttpControllerConfigurationAttribute attribute with a more genereal IControllerConfiguration interface that gets invoked on any controller attribute.
4.	Things that used to take a HttpConfiguration can now take a HttpControllerDescriptor if they want per-controller services. Parameter binding is a prime example.
5.	Remove DefaultActionValueBinder.GetFormatters() and use the controller services facilities instead.

Make per-controller services extensions hang off the ControllerServices class. This makes it more easy to reason about correctness.
Add support for CreateResponse<T> using per-controller configuration by default. This enables per-controller formatters on the write path.
adjust wording in comments.
Removes an FxCop warning. Rename ParameterBindingProviders to ParameterBindingRulesCollection.
Issue 118: Enable SimpleMembership breaks PreserveLoginUrl setting

Change WebMatrix.WebData PreAppStart to not force a loginUrl if PreserveLoginUrl == true.
Fixing Issue 87: part 1 - Accessing HttpContent from MediaTypeFormatters
Essentially we're replacing the HttpContentHeaders parameter in MediaTypeFormatter.ReadFromStreamAsync/WriteToStreamAsync with HttpContent so that the content instance itself can be accessed from the formatter layer.
Allow setting authentication scheme