refactor to fix duplicate symbol linker errors

refactored BoardGUI_hof into a namespace, with a separate header file for prototypes to fix linker errors.