Joystick touch ups

Joystick now works correctly under some circumstances it didn't before:
- if a user presses and holds a button and tries to activate a joystick
at the same time it will work
- if a user is using a joystick and presses a button while using it, it
will still work

Found some confusion with tapping random places on the screen while
using the joystick. It'll cancel the joystick because it registers as a
touchEnd event, then a touchEnd event is triggered the code checks to
see if the touchEnd is occuring on a pressed button, and if it is it
unpresses that button accordingly, and if it's not then it assumes the
touchEnd is coming from a canceled joystick. This means that any
touchEnds that occur outside of a pressed button will cancel a currently
active joystick.

I've tried to throw in a conditional to only cancel the joystick if the
touchEnd event occurs within an active joystick (much like I did with
the button). But for some reason touchEnd coordinates do not line up
with joystick coordinates when a user releases a finger controlling a
joystick.

- Also added new D-Pad mode for the joystick in the demo.