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?
> So when we implement a shield, like in this case, how should we extend the Motors? 

Start with the component level extensions, the Shield shield only instantiate an object that's effectively a "wrapper" of whatever goodies come on a board that Johnny-Five can support.

> Should we allow the Motor to have a controller instance passed in when the shield instantiates the motor? Or should the shield monkey-patch the motor? (I am in favor of passing a controller in)

I'm not sure, I'm sure @dtex has a good idea of how the flow for this should go

> Further, if these shields are part of J5 propper, then I do think they should still be in their own modules. 

Yes

> Saying something like new five.Shield("ADAMOTOV1") should internally require the shield definition. If lib/definitions is an existing convention, then it seems like lib/definitions/shields might be the best place to put these shield definitions?

Exacty

>  I like the usability of it because it maps to the real world well. A Board HasA Shield and a Shield HasA ShiftRegister/Motors

Me too, but I think I've been a harder sell ;)

> Motor class knowing about shift registers and specific pins of a very specific shield.

Tell me about it. TBH I blame hardware designers for not ever thinking about how this stuff will be programmed. Sure, it's clever as hell to use a shift register, but it also results in truly esoteric implementation details (like those you've mentioned). 

At the same time, I don't want to this change to mean that I can't instantiate one motor on a given shield using the `Motor` class.