CollectAs<T> and CollectDistinctAs<T> returns IEnumerable<T> instead of IEnumerable<Node<T>>

As commented on issue #17 these aggregates should return IEnumerable<T> instead of the collection of node references.

However this pull request depends on the changes made by the transaction pull request. This commit should automatically refresh if that other pull request is accepted.

Pull request updates are going to be to include more unit tests.