Performance optimizations

- Cache the property definition for each entity property.
- Cache the selection bounds and rebuild them lazily.