Code refactoring, added predecessor/successor.

Users can now use an Iterator (which is a Zipper in disguise) to
point to elements of the tree.
Zippers now are a bit more complete, making their use less painful
due to the pattern matching on every possible ctor/context.
Code's been refactored into an Internal module and an external one,
where the user-facing functions are defined.