Bugfix: descendants method must not modify the data structure

I fixed a bug with the *descendants* method. This method modifies the *children* array of the tree element, so that the data structure is modified, when calling it. I fixed this and updated the unit tests.
Would be very nice if this fix would make it into the official repository.