move some method calls out of the loop
add a cache for property inspections so we can avoid doing them
in every loop iteration
store the setter that should be used when inspecting the property, this avoids
having to check for it in setProperty()
Merge pull request #8 from Jalle19/performance-improvements

Performance improvements