added 'WhenCalled' functionality

'WhenCalled' provides the ability to invoke a delegate when (and only
when) the expectation is matched against a method call
'WhenCalled' is executed prior to any other calls to allow for arguments
to be modified if needed