Adds ReplaceDescendent test.

Current fails as it is not implemented.
Merge branch 'master' into RecursiveTrees

Conflicts:
	ImmutableObjectGraph.Tests/FileSystemTests.cs
Adds a ReplacementDescendent test.
Fixes failing tests

The algorithm for finding the matching descendent is horribly
inefficient.
Adds ReplaceDescendentNotFound test.
Wrapping up recursive tree work for now.
Merge branch 'RecursiveTrees'