Error detection malloc() and free()

This assignment helped give a better understanding of how memory is
allocated and accessed. We created our own version of malloc() and
free(), and calloc(), to mimic how the malloc() and free() acts whenever
we call it in other projects.