Removing unneeded semicolons
Adding checks and failure states after fread() operations.

Also using macro SEEK_SET instead of 0 in fseek() operations
Updating FileHandle to delete malloc'd memory. Adding new checks when fwrite and fread are called