Issue #3 Memory Manager

SQL Parser add a simple Memory Manager for performance,
The Memory Manager is very simple, it contains at least one block,
each block in a mm is linked with a single-linked list, When need
allocate memory from mm, we check the current block for free space,
if it's free space satisfied, allocate immediately, else create a
new block at the end of single-linked list, and allocate from the
new block.

We provide three method for use:
1. memory_manager* mm_create(size_t blk_size);
2 .void* mm_alloc(memory_manager* mm, size_t size);
3. void mm_destroy(memory_manager* mm);