Add option to pass arguments to UserAllocatedEvent calls

The UserAllocatedEvent class is very handy to use to prevent eventqueue overflows and allows for better insight in the ram required by the queues.

However there is currently no option to pass arguments like it is possible to pass arguments to functions called directly on the queue. The arguments can only be set on construction of the object and not in the call functions. Is it possible to implement to implement the call functions that allow passing arguments in line with the callback signature?

Example:

class Device {
   public:
   void handler(int data) { ... }
};

Device dev;
static EventQueue queue(0);
static auto event = make_user_allocated_event(&dev, Device::handler);

int main()
{
  event.call_on(&queue, 100); // So 100 is the argument for the handler

  queue.dispatch(1);
}