Handle nulls correctly in iterator factories

See #60
Construct SerIterator using parent iterator

Clearer way of expressing relationship
See #60
Reorder methods

See #60
Determine if meta-type needed using SerIterator

Meta-type should be decided based on declared type
See #60
Enhance, test and fix meta-types

Where a meta-type is used, ensure it works
Fixes #60