Major refactor

1. All Iteratee constructors are now functions.
2. Renamed EnumScanner to ScanEnumerator; EnumScan to NewScanEnumerator; EnumRead to NewScanEnumeratorWith.
3. Added some documentation.
Split Enumerator implementations from basic stream stuff
Fix a typo