Use std::function for return handler
Removed unneeded this-> in call_matcher
use std::function for side effects
simplified call match count limit handling