feat(errors): use real `Error` objects, prefix error messages

So that test frameworks like mocha can show the real error message
instead of `[Object object]`

All errors are real `Error` objects, all errors are prefixed with
commandName: args, thanks to @sebv for the idea
fix(remote): automatically chain custom Constructors

like it did before
Merge pull request #171 from camme/errors-and-Constructors

Errors and constructors
decreased chainIt version because of performance issues
bumped version, skipped window tests in IE, removed coveralls badge because of current maintenance work
skip one for IE test
added coveralls badge
implemented eventhandler to trigger 'command', 'result' and 'error' events - refs #137

- implemented EventHandler singleton object to handle events within webdriverjs
- refactored bunch of code and made advantages of new event handling mechanism
- exposed 'on' and 'emit' functions for user
implemented 'end' event emitter - refs #137
emit event on session initialization - refs #137
added tests for implemented events (init,end,error,command) - refs #137
dont kill process if no connection could be established - better handling of unavailable clients - refs #137 #162
dont log something is case logLevel is undefined - refs #137
improved eventhandling
- each instance gets its own event handler
- expose more EventEmitter functions (automatically)
- expose EventEmitter functions to be able to get executed within the queue
- code refactoring -> no static logger object anymore
added comments to explain implementation