Gamepad stuff

also some minor changes to keyboard
fixed the math for reading spritesheets with multiple rows (only the first two rows were working before)

also changed the playAnimation function to not set the currentframe back
to zero, playFrom(0) should be used if that behaviour's needed