Added DecoratingIterator

Originally based on Marcus Börgers DecoratingIterator[1].

Tests have been added and dead code has not been left
out.

[1]: http://goo.gl/zViiro
Added RecursiveDecoratingIterator