add support for optional arguments in on_leave_state hook, also accept a method name instead of a sub
make some vars global so they can be accessed directly by Class::StateMachine::Declarative::Builder for performance reasons; add debugging to on_leave_state