Added magnetic calibration code. calibrateMag() finds the calibration values for a given MPU and stores the relevant resulting values in XYZPosition structs. When a magnetic value is found, it should be passed through adjustMagValue(), which will apply the calibration. If all three buttons are pushed at the same time, the arm enters MODE_CALIBRATE, which holds the arm steady until another mode is selected. In this mode, the user has some time to rotate the base MPU through as much rotations space as possible.  The end of this period will be indicated by the LED flashing. The same calibration the occurs with the controller.  The amount of time that it takes to calibrate will have to be adjusted by testing. An arbitrary stand-in value is currently being used. Also introduced priority to mode selection as follows from greatest to least: calibrate, controllable, stabilize, combined.