input, msg_phys, physics: deduplication, bugfixing

Macros are cool. Function pointers inside structs are cool. Installing your own signal handler is NOT cool. I __know__ what I'm doing. Did SDL really think I was just going to **forget** to call SDL_Quit()? Whatever, now I can focus on actual simulation problems.