Changed the public interface of Scanner to resemble an STL container.
Switched the Iterator implementation to a dedicated helper class (to hide the specific implementation, since it's pretty messy and may change).