Added smooth movement and acceleration

Added alogorithm using velocity to allow for smooth acceleration and
stopping via friction rather than release of key.
Revert "Added smooth movement and acceleration"

This reverts commit d4f69b4301d8f622d5f0b22b5157fb4e0f5d601b.
Revert "Revert "Added smooth movement and acceleration""

This reverts commit 2accfddacb6cca2d42c834dd5784c9c9473d3532.