Adds deadlock protection to single_threaded decorator.
Adds deadlock protection to single_threaded decorator.

Decorating a function with single_threaded more than once would cause the
callback queue to deadlock. This prevents recursive decoration.

evenator/marti_common,evenator/marti_common,elliotjo/marti_common,swri-robotics/marti_common,evenator/marti_common,swri-robotics/marti_common,swri-robotics/marti_common,elliotjo/marti_common,evenator/marti_common,elliotjo/marti_common,elliotjo/marti_common,swri-robotics/marti_common