Improve performance of firmware

NOTE: This commit contains changes in both the samples (updated .config
      files) and the firmware.  If you sync to this commit, the samples
      won't work without first deploying the latest firmware image.

The main purpose of this commit was to get the sample rate up to 100Hz.
It includes changes such as:
* The code is now multithreaded.  The sensors are read at 100Hz in a
  Ticker interrupt handler.  The main thread blocks in
  getSensorReadings() until the next sensor reading becomes available.
* Just sampling the ADXL345 accelerometer at 100Hz instead of
  oversampling at 3200Hz and then dividing by 32 to get the average.
  This uses a lot less CPU cycles, makes it easy to hit 100Hz and
  appears to have no impact on the signal to noise ratio.
* No longer have the ADXL345 accelerometer or ITG3200 gyroscope sensor
  classes wait for the data to be ready before issuing the vector read.
  The previous code just wasted CPU cycles since the Ticker object is
  making sure that they are only called at the required 100Hz.
* The sensors now take a pointer to the vectors that they update so
  that they can update directly rather than incuring a memcpy.  This
  change can be seen in the getVector() methods for each of the 3
  sensor objects.
* In main.cpp, I tightened up the use of the timer object to determine
  sample time so that the timer was reset immediately after it was
  read.
* Removed extraneous do ... while() loop from HMC5883L::getVector.  It
  just made the code more complicated and added nothing from a
  functionality point of view anyway.
* I added a clear() method to the IntVector class.  This was actually
  used from outside of the class constructor for a short time but the
  code was then refactored to remove its usage.  I see no reason to
  revert this change though.