Add a new field type 'relation' to objects

This adds support for a new field type called "relation" to a field
allowing a field to be a relation, meaning you can have for example a Domain
with a relation to a RecordList.

Trying to access a relation that is not set with raise a exception
ReloationNotLoaded.

We add a recordsets relationsip on Domain so we can pass around a Domain object
with the recordsets attached.

Change-Id: Ic45313df5316e6af1a7424b6f6a11bebf6fdb3ad
Merge "Add a new field type 'relation' to objects"