Cleaned up the interface and added more comments. Added a test to see
if an iterator is owned by a data structure without throwing
Authored by: andy_rushton 2015-10-29
Parent: [r559]
Child: [r561]