proxying change events through the IMU

Fixing this issue: https://github.com/rwaldron/johnny-five/issues/559

The example was listening to "change" events, but the IMU never sends them.  This change will proxy "change" events through the IMU from the individual components.

I needed a way for the `controller` to communicate which components to watch for "change" events on.  So I am now exposing a `components` property on the class.  I think this is a useful convention for IMUs so that the user can query the components that the IMU exposes.  That also lets me loop over the exposed components and re-emit the changes.