Optimizations - prevent static bools everywhere in check_* functions
- input_keys_pressed_func takes a pointer and sets it to the last
input state. We then pass this around functions and use it where
necessary
Use macro functions to hide away some of the ugliness