user settable contract violation handler callback
added __ to implementation macros to avoid conflicts
Merge branch 'feature/contract-violation-handler' into develop