Major refactoring + other changes

#include cleanup
Better header guard naming
Made Aperoigon direction change not happen during a fast spin