TODO

[ ] Finish Documentation
[ ] Simplify PUBLIC and PRIVATE
[ ] Add multiset
[ ] Add multimap
[ ] Upgrade heap to a min-max heap
[ ] Add dispose function
[ ] Serialization
[ ] Iterator based functions (like C++ collections)


MAYBE

[ ] Add conditional code generation based on variadic macros


PLANNED

Before 2.0
    Get Documentation fixed and completed

1.5
    Simplify PUBLIC and PRIVATE (simply remove them)
    Conditional code generation
        Add extra content macro (Insert/Remove/Append/Prepend) and let user decide if he wants to include them or not
        Separate Implementation Detail into a different MACRO (LIST_GENERATE_DETAIL)

1.6
    Iterator move and move_to
    LinkedList - Insert/Remove/Append/Prepend/Extract
    to_array - Creates an array with all the elements inside the collection

1.7
    Add shrink function that shrinks the internal buffer to current count of elements

2.0
    Add multiset, multimap and new heap implementation

2.1
    Adapt multiset, multimap, treehashmap and new heap implementation to the current standards
    Add dispose method to each collection in order to automatically free its data

2.2
    Add serialization functions
        Header:
            %d - Type specifier (LIST = 0, DEQUE = 1, STACK = 2, etc) for quick check
            %llu - How many elements there are
            %d - If data varies in size
            %llu - Data size

2.3
    Iterator functions (functions that operate relative to iterators position) like add or remove ranges

Sometime
    Add treehashmap
