Change entity property access via relation object and have __isset check against relations

While using Spot2 with Twig, I found out that I can't lazy load relationships unless the __isset returns true for relation properties.

Also, I found out that the way twig attempts to access properties off of the relation revealed a bug in the belongsTo and hasOne relation classes. BelongsTo and hasOne both try to access the entity via ArrayAccess, but Entity does not implement ArrayAccess. Instead of changing Entity to implement ArrayAccess, I just changed the way properties were accessed via the relation objects.