lib/standard: rework and factorise queues and heaps.

Rewrite most of the queue and head data-structures.

1. move them is their own module (instead of the end of the collection files)
2. make Queue the abstract queuing interface (I need this for my IA library)
3. faster Heap implementation
:s/is_enpty/is_empty