DATACMNS-518 - Avoid potential infinite loops in PreferredConstructor.

We now synchronise the (seldom) writes to the isPropertyParameterCache HM in PreferredConstructor via a ReadWriteLock. We could as well have used a CHM here without the need for manual locking but this would potentially waste memory for a mostly read-only data structure. We also anticipate potential multiple writes for the same property.

Original pull request: #86.