Added remove($id) and remove_all() methods

This was requested by Ikegami in
https://rt.cpan.org/Ticket/Display.html?id=77200

The logic is slightly complicated as it needs to remove the items from
one of three state queues: "to_send", "in_progress" or "to_return".

The tests for this are quite complicated as we needed to be certain of
having items in specific states such as "to_return" and "in_progress".