Merge branch 'master' into John
specified some automatic layout stuff

for motors in gangs
added some support for different # motors or gangs

added some support for different numbers motors and different numbers
of gangs. Still need to address adding motor rotation dials and motor
status lights
support for different number of motors

control flow using switch instead of for loop
browser support for firefox

add correction factor 'browserFix' to add a 4px height to text within
the Phaser canvas and to make the border a width of 2px (so 1px +
browserFix/4). Although the borders are specified as 1px, they appear
to be 2 px in Chrome,Safari, and Opera
Merge branch 'John'
refactored statuslights for motors

using a status light prototype
setmotorinfo sensor statuslights and

handling more motors
fixed glitch in gang update slider speed animation

fixed glitch in gang update slider speed animation
buttons

buttons
cleaned up some code and deleted unused files

removed previous variable declarations no longer being used or no
longer needed
restructuring motor data/settings updating flow

trying to make it more efficient
Revert "restructuring motor data/settings updating flow"

This reverts commit b1c865e2888c89a1c598db87ef43a39ee82bede9.
Revert "Revert "restructuring motor data/settings updating flow""

This reverts commit 17d3792d55a56c3ce5a4b7c2e52fda869ed7dbd9.
fixing motor speed and direction config update

so speed and direction config settings can be changed while a motor is
moving.
restructured direction switching to fix rotation

needle rotation direction switches if the direction config button is
clicked while the motor is already moving
gang speed updatable while motors are in motion

gang speed if changed while motors are in motion
fixing gang direction update

fixing gang direction update
deleting some comments

deleting some comments
keyspaceDash.direction & motorData.moving

fixed disagreement that occurs for a few milliseconds after stopping a
motor, when the dashboard and the physical motors show 'stopped' but
the motor data hasn't update from moving = true to moving = false