Fixes #293, AuthorizeAttributeAclModule now works when specifying the URL explicitly, not just when using controller and action.
Fixes #292, use invariant culture for all of the ISiteMapNodeProvider instances so parsing of strings and dates will be the same for all users. Also using the invariant culture when the /sitemap.xml endpoint is run so the DateTime.MinValue can be compared without changing from culture to culture.

This is a breaking change for custom ISiteMapNodeProvider implementations that depend on the current culture to parse dates and/or format strings. IDynamicNodeProvider implementations are still run under the current culture, so it is not a breaking change in that case.
Updated Mvc.sitemap files in the sample projects to use the MvcSiteMapProvider.xsd file in the MvcSiteMapProvider project so there are not multiple copies of the XSD in the solution.
Added support for eliminating the ambient request values from being considered when resolving URLs (#213).
Fixes #213, added IncludeAmbientRequestValues as a feature of ISiteMapNode and provided support for populating this property through XML, Dynamic Nodes, and MvcSiteMapNodeAttribute.
Added the protocol and hostName properties/attributes to ISiteMapNode, SiteMapNode, LockableSiteMapNode, RequestCacheableSiteMapNode, XmlSiteMapNodeProvider, XmlSiteMapNodeBuilder, DynamicNode, IMvcSiteMapNodeAttribute, MvcSiteMapNodeAttribute, ReservedAttributeNameProvider, and MvcSiteMapSchema.xsd.
Updated SiteMapNodeUrlResolver to support protocol and hostName.
Reworked UrlPath class to provide ResolveUrl overloads that correctly a) resolve the ~ character b) resolve the hostName and protocol, accounting for when the site is hosted on a web farm/cloud environment. Also moved the logic of determining whether host name matches the current request and whether the URL is external into the UrlPath class. Added unit tests for the new methods in the UrlPath class.
Added exclusion to the SiteMapNode.ResolveUrl method for when protocol is supplied without hostName - in this case the hostName is inferred from the current request so we need to ensure it is not cached.
Removed code in SiteMap.AddNode that removes a node if the URL exists already (apparently the url table was not being cleared correctly). This situation should be caught in AddNodeInternal.
Bug fix for SiteMapNode.CanonicalUrl property to use public facing URL instead of HttpContext.Request.Url so it will function correctly in web farm and cloud environments.
Added an HttpContext property to the MvcSiteMapNode so the syntax is simpler for getting the current context within the node.
Fixed bug in SiteMapNode.GetAbsoluteCanonicalUrl where the node's URL wasn't being used when finding the node by key.
Functional prototype for matching URL including hostName (before refactoring).
Refactored the SiteMapNodeUrl classes into their own files into the Matching namespace and renamed them to be more generic (UrlKey).
Plugged new UrlKey classes and interfaces into the SiteMap object and confirmed that it is functioning.
Refactored SiteMapChildStateFactory to provide instances of the new UrlKey classes and changed the type in the URL table from string to IUrlKey.
Added missing GetPublicFacingUrl method from the FakeSiteMap IUrlPath implementation.
Added ResolveContentUrl overloads to support resolving URLs to the request's protocol and port.
Added ImageUrlProtocol, ImageUrlHostName, CanonicalUrlProtocol, and CanonicalUrlHostName properties to support using more URL configurations for improved portability.