Improving plugin usage in CLI

## Multiple `--use` flags

This adds the ability to use `--use` multiple times, while still allowing comma-separated lists for backwards-compatibility.

```sh
# this
% duo --use duo-handlebars,duo-6to5,duo-myth ...

# can now be expressed as
% duo --use duo-handlebars --use duo-6to5 --use duo-myth ...

# or even
% duo --use duo-handlebars,duo-6to5 --use duo-myth
```

## Allow leaving off the `.js` for local modules

```sh
# this
% duo --use plugin.js

# can now be expressed as
% duo --use plugin
```

## Exporting an `Array` of plugins

This last change allows the inclusion of many plugins with custom config much more elegantly. For example:

**plugins.js**
```js
var es6 = require('duo-6to5');
var hbs = require('duo-handlebars');
var myth = require('duo-myth');

module.exports = [
  hbs(),
  myth({
    customMedia: false,
    calc: false
  }),
  es6({
    onlyLocals: true
  })
];
```

```sh
% duo --use plugins index.{js,css}
```

```js
var plugins = require('./plugins');

duo(...)
  .use(plugins)
  // ...
```

I think this is a solid solution to the problem of configuring plugins, which has come up several times before. This would normalize the behavior in such a way that both the API and CLI can effectively take the same argument and do the same thing. I think this pattern is really easy to understand and requires no new syntax or knowledge for the average node dev.
Yeah, but that's what I saw the `running` and `run` events doing as well, they seemed to be purely for the CLI logging.