Add support for allocating and freeing blocks, along with a expanded BlockMap function. However, support for very large files (triple indirect blocks) and a goal block during allocation is needed.