Organized source files into subdirectories.
Updated Makefile to automatically build and link all .cpp files instead of listing object files individually.
Renamed all .h files to .hpp.
Updated includes to use new .hpp names.