add BatQueue.filter
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
remove Queue.push_front
Merge pull request #585 from madroach/queue_filter

add filter and map to BatQueue.