OCP-ify the CopyAndUpdateAssertion

by adding a new optional constructor argument for CopyAndUpdateAssertion, allowing the parameter-to-member matching logic to be defined in a custom way.

This implements #205.