Add smoother and first cut of noise filtering

Simple blending smoother added. Will test and evaluate against more
complex methods.
Add loPass as parameter

Also dropped new date as output for acceleration event.
Clean up extraneous bits

Update of changed and last values moved to smoother.

Right now that makes the smoother required for axis change events.

Remove initial and irange checks as they are not descriptive and aren't
necessary with the use of last.
allow alpha to be passed in as an option
bind this value per @rw
simplify event emitter
Board.prototype.serialize, first draft

Signed-off-by: Rick Waldron <waldron.rick@gmail.com>
Update axis change threshold

Move predicate function out of event emitter. I still don't have a good
definition of an axis change, but we didn't have one before, either.

I think in order to have a real axis change event we'll need a buffer
of old values longer than length one. I'll get on that.
Set threshold as a passable parameter.
Board.prototype.serialize, v2

Signed-off-by: Rick Waldron <waldron.rick@gmail.com>
Merge branch 'smoother' of https://github.com/Protonk/johnny-five

* 'smoother' of https://github.com/Protonk/johnny-five:
  Set threshold as a passable parameter.
  Update axis change threshold
  simplify event emitter
  bind this value per @rw
  allow alpha to be passed in as an option
  Clean up extraneous bits
  Add loPass as parameter
  Add smoother and first cut of noise filtering

Conflicts:
	lib/accelerometer.js

Signed-off-by: Rick Waldron <waldron.rick@gmail.com>
Accelerometer style nits, clean up

Signed-off-by: Rick Waldron <waldron.rick@gmail.com>
Board.prototype.serialize(filter); Allows custom filtering of serialized data properties

board.serialize(function( prop, value, device ) {
   return "replacement value";
});

Signed-off-by: Rick Waldron <waldron.rick@gmail.com>
If no z property, use 0

Signed-off-by: Rick Waldron <waldron.rick@gmail.com>