doc: add documentation for errors

This adds documentation around what errors are generated by Node and how to intercept them.

The rendered docs are available [here](http://neversaw.us/nodejs-api/errors.html).
"System errors" doesn't make a lot of sense, as I would clasify these as unrecoverable _exceptions_. For example, `JS FATAL ALLOCATION`. Nothing you can do about that, and it's not an `instanceof Error`.

There are also a set of recoverable and unrecoverable JS errors that are emitted from V8. For example:
```javascript
process.on('uncaughtException', function(er) {
  console.log(er);
});

var b = f;

// output: [ReferenceError: f is not defined]
```
So V8 allows the `ReferenceError` to be caught. But in the following:
```javascript
process.on('uncaughtException', function(er) {
  console.log(er);
});

var b = f f;
```
There is no ability to recover, the following is printed and the application exits.
```
/tmp/test-exception.js:5
var b = f f;
          ^
SyntaxError: Unexpected identifier
    at exports.runInThisContext (vm.js:69:16)
    at Module._compile (module.js:443:25)
    at Object.Module._extensions..js (module.js:478:10)
    at Module.load (module.js:355:32)
    at Function.Module._load (module.js:310:12)
    at Function.Module.runMain (module.js:501:10)
    at startup (node.js:124:16)
    at node.js:811:3
```
So the `SyntaxError` is still an `instanceof Error`, but it's unrecoverable.

Bringing this back around. There are JS Error objects, and there are recoverable and unrecoverable exceptions.

All recoverable exceptions from Node.js and V8 will be an `instanceof Error`, but not all unrecoverable exceptions. This does not imply that all recoverable exceptions are `instanceof Error`, since anything can be thrown in JS. For example `throw 42;` will propagate the number `42` to be caught, and it's not `instanceof Error`. 

That being said, the only reason that all recoverable exceptions thrown from Node.js and V8 are `instanceof Error` is by convention. There's nothing forcing Node to only throw `Error` objects.

This make sense?