Replace iteratee structural types with named types

* Based on work by @davidillsley in #967
* Remove reflectiveCalls imports now that iteratees don't use structural types
Move Parsing object into separate source file
Merge pull request #1632 from richdougherty/iteratee-tidy

Misc small iteratee tidy ups