dontTouch should default to leaf marking rather than aggregate marking to match current behavior
Add an argument to dontTouch which allows placing don't touch annotations on the leaves of aggregates. Default this option. This results in the same behavior as what the current dontTouch effectively does today. Don't touch of an aggregate is on it's plain meaning different from don't touch on the leaves of an aggregate. Making the annotation a bit more precise allows greater freedom in code generation and allows catching contradictory requests by the programmer.