Fixes #271, set controller.ControllerContext property in AuthorizeAttributeAclModule to the new ControllerContext object, because MVC doesn't handle this automatically. Also added a statement in the finally block to set it back to null when we are done with it because otherwise we would have a circular reference memory leak.
Added/corrected documentation on types in the MvcSiteMapProvider.Caching namespace.
Change for #271. Assumption about memory leak because of circular reference was incorrect (verified by testing). Moved functionality to set the ControllerContext property of the controller to the new ControllerContext instance within the MvcContextFactory.
Fixes issue discussed in #236, random exceptions being thrown when cache expires. Assumption about a potential memory leak because of circular references was incorrect, so there is no need for the SiteMapLoader to call the ISiteMap.Clear() method when the cache expires. Confirmed by adding extra buffer to the SiteMapNode and setting cache duration to 0 that memory is not leaking in this case.
Hiding the public ISiteMapNode.BuildSiteMap() method from intellisense because it is meant for internal use by MvcSiteMapProvider.