First pass at DM-840
Added UNDEFINED ImageOrigin enum value
Made UNDEFINED the default for image constructors (which have lots of defaults,
so I can't just delete the origin default).
Eliminated the default value for ImageBase.getBBox.
Modified all code that calls functions that accept an ImageOrigin argument to specify it explicitly.
Changed default image origin value from LOCAL to UNDEFINED
Updated the one unit test that broke.
Changed the remaining default image origins to LOCAL to UNDEFINED
Updated two unit tests accordingly.
Two more instances where the default image origin was LOCAL
Change default image origin to PARENT and use the default where possible.
Respond to review by restoring LOCAL where appropriate.
Also enhanced documentation in detection.py
Merge branch 'tickets/DM-1176'
Add base classes for FunctorKeys that return reference objects
Documentation for FunctorKey base classes.
Add memory-manager getter to BaseRecord

This will be necessary to support FunctorKeys that return arrays.
Update docs on aggregates to use new field delimiter convention
Add FunctorKey for arrays
Add methods to ArrayKey to create new fields in Schemas
Use two template arguments in FunctorKey invocation

This lets us support implicit conversion in FunctorKey-based set.
FunctorKey-based const reference access should be a const method.
Add comments to ArrayKey test.