Create from objects responding to attributes

Allows deep clones to be created from entities by passing them to the
constructor of the class.

Also, a better error is raised when something is passed that cannot be
used to initialize an entity.