Big structural changes

Re-formatted canvas structure:
canvases are as follows from BOTTOM to TOP:

1. Joystick bases - this canvas exists solely to draw the base of an
active joystick
2. Joystick tops - this canvas exists solely to draw the top of an
active joystick
3. buttons - this canvas exists to draw buttons, and also appropriately
change their graphic when they are pressed and released
4. smart layer - this layer holds all touch event listeners and tells
the other canvases when to do stuff based on the received touches.

Based on the information that all DOM elements share a touches array
I've decided to go with a single canvas to detect them for now. There
could be some issues later on down the line with not being able to use
touches.TargetTouches but honestly I may just nix the idea of multiple
joysticks altogether which would negate that worry. But that would be a
last resort. I'd very much like to have at least two available.
Changed targetTouches

No longer needed with just one joystick and one smart layer canvas
Revert "Changed targetTouches"

This reverts commit 75b94710f58ca7ac12deed22ea72791612104947.
Revert "Big structural changes"

This reverts commit 9ed4da9a995a9068b0d9df8e49f532ef8dd2ad2e.