Improved movement logic, Property & Field cleanup

Replaced most Properties and Fields with Auto-Implemented Properties.
The program now checks to see if the keyboard state has changed before
re-calculating the movement vector.