First Commit of Animation

Here it is.

I'm feeling pretty good about the API but the real test will be when someone other than me ports to it or builds their own bot with it. 

If anybody is willing to try this out I will bend over backwards to help them. I need the perspective of someone who is new to it.

I've got some basic documentation over in docs/animation.md but it's not really written well for beginners. Once the API is golden I need to write a wiki page that's more of a tutorial. There is a lot to digest here.

This PR is the culmination of all the discussion in #304 also fixes #362
Sometimes you may have a subset of servos that all need the same instruction (i.e. all the femurs go to one angle). A servo.array will behave that way. The tweening will be done one time and then we call to() on the Servo.Array. We don't store last for a servo.array, so we need to pick one member of the array to look at.

````
var leftFemur = new five.Servo(9);
var rightFemur = new five.Servo(10);
var leftCoxa = new five.Servo(11);
var rightCoxa = new five.Servo(5);

var femurs = new five.Servo.Array([leftFemur, rightFemur]);
var legs = new five.Servo.Array([femurs, leftCoxa, rightCoxa]);

var legsAnimation = new five.Animation(legs);
```