Changed value for maxDepth to prevent ArgumentOutOfRangeException("maxDepth") to be thrown from ctor SiteMapNodeModel
Using correct variable to add descendants to node.children
Bugfix => descending to a lower level wasn't guarded properly.

Unit tests to support correct behavior when looking for Nodes to include in the model when visibilityAffectsDescendants is set to false and descending to a lower level
Corrected some spelling mistakes in the comments of MenuHelperTest.cs.
Eliminated the class-level variable required by the FindNearestVisibleDescendants() method and changed to a ref argument so it is easier to initialize at the appropriate time.
Factored out sorting of SiteMapNodes into its own method in SiteMapNodeModel.cs. This required a new interface ISortable to be implemented in both ISiteMapNode and SiteMapNodeModel.
Added documentation for FakeSiteMap test cases (Case1 and Case2) so they are easier to understand.