Implementation of uninstall feature in Makefile

The uninstall function cleans up all the files and directories created by the install function in reverse order and mirroring as much actions as possible for readability.