An unstable version with free block list for efficiency.
The next version will give up explicit free block list, since free block list fashion causes confusion for "next fit" when freeing a block and merging it with both left and right neightbour blocks.
1. add makefile for easier build process
2. a new dynamic allocator without free block, but may not achieve good evenness usage since merging the right free block may hinder the "next fit" effects