add Queue.Concrete module

to encapsulate functions working with the concrete representation of
queues. Use Queue.clear and Queue.is_empty instead of comparing /
assigning (Obj.magic None).
Also add comments to and simplify Queue.filter.
add Queue.add_front and Queue.map