Broke up project into modules
Refactored input handling, now uses input device agnostic intentions
Added mouse input option