Make the axis->button mapping code make more sense
De-duplicate updates to axis mapped keys.

Improves mapping an analog stick to the same thing as a dpad, as this reduces
spurious button resets caused by analog stick noise.