Direction multiplied by speed now and refactoring

Direction is now a max of 1 in any direction and speed is always
positive and when calculating new pos, both are multiplied. Input
capture has been refactored.