Privatized Vector internals.

This patch does the following:
* Hides the vector structs internals - can now only be manipulated through the
provided functions
* Adds a mechanism for destruction and calling size.
* Renamed internal type to Vector_t, while exposing it as Vector externally.
* Moves Queue and Stack implementation into vector.c as they need access to
* Vector internals.
Slight improvement in heap implementation.

Changes reflect the privatization of vector/queue/stack
Updated TODO
Fixed mis-implementation of nstl comparison functions.
Plugged mem leak in vector destructor.
Privatizes the linked list implementation.

Following changes applied:
* Only two files needs compilation - all logic moved into lpriq.c and list.c
* Extended the double ended queue so that it also supports pops directly.
* Privatized the linked list node - no longer directly accessable - supports
only provided functions
* Merged implementation of shared features for deque and linked stack.
Fixed mem leak in heap pop.
Privatized Red black tree implementation.

Turned it into an opaque type.
Implemented a series of destructors.

These cleans up the entire structures. Naming scheme is destroy_[structure]