Enhanced exceptions

This commit also contains:
- eslint + jscs break the process as they should if there is an error
- test should fail if no error is thrown on each t.throws tests
- throwing the same error keep the original stack trace

The helper I'm using only enhance exceptions that can be thrown & do not throw a new exception.

Note: I'm making a PR because I don't have npm rights for now :)