code: function protectedCallback( callback ) {
      return function() {
        try{
          return callback.apply(oboeApi, arguments);
        }catch(e)  {
          setTimeout(function() {
            throw new Error(e.message);
          });
        }
      }
    }
docs: wrap a callback so that if it throws, Oboe.js doesn't crash but instead
  throw the error in another event loop