First pass at AdaFruit Motor Shield v1.*

This is my first attempt at implementing an AdaFruit motor shield with directional control.

Hoping to see if I am on the right track before I finish this up (tests, documentation, etc).  

You can create a motor the traditional way with the controller:

```javascript
new five.Motor({
  pins: { pwm: 11 },
  controller: "ADAMOTOV1"
});
```

But since these motors are called out by name and it can be hard to find the documentation which tells us which PWM pin to use for which motor, I built it into the configuration of the controller:

```javascript
new five.Motor({
  name: "M2",
  controller: "ADAMOTOV1"
});
````

Thoughts?
I really think the time has come to introduce the concept of shields to Johnny-Five. I had talked with @rwaldron about this some time ago but that was before the motor class had been refactored and there were more pressing things to deal with it. motor() should remain as generic and manufacturer agnostic as possible. If we add in shields at another layer we would keep that flexibility in motor() but add in the ease-of-use of just knowing which pins/controllers to use. I propose that we give users the ability to do this:

````
var five = require("johnny-five");

var board = new five.Board().on("ready", function() {
  var motors = require("AdafruitMotorShieldv1.2"); // separate package
  // or motors = new five.shield("AdafruitMotorShieldv1.2"); <--- Built into J5
  motors.M1.start();
});
````

Rick asked me to sketch up how this might work and I just never got around to it. How do you feel about doing things this way?