Add Relations::Collection module

This change adds a DSL in Element subclasses for defining methods to
access a collection of element nodes. This will replace some previously
necessary boilerplate across Element subclasses.