added .action(), errors plugin and retain user modes

Not sure how to split multiple commits into their own pull requests, so here's a pull request with several changes I've made.

User modes are implemented like this: 
```javascript
var names = [
  {name: "tj", mode: "@"},
  {name: "tobi", mode: "+"},
  {name: "guy", mode: ""}
];
```
`error` is already taken by eventEmitter.
Quote from the node.js docs: "When an EventEmitter instance experiences an error, the typical action is to emit an 'error' event."