Pass back Exceptions as JavaScript Errors

As outlined in #169, currently all Exceptions from .NET code are only processed via their `ToString()` code and returned as String.
This makes dedicated error handling in JavaScript quite difficult/error-phrone as it has to happen on a long String only.

This pull request consists of:
* Exceptions from .NET are handled like normal result objects in terms of their properties and become a full blown object on their way back to JavaScript
     * Prototype is set accordingly so that `instanceof Error` returns `true`
     * The Exception type is stored as `name` property on the error 
     * Inner Exceptions/lists are also translated as normal results object are also translated
     * `message` property is set on the Exception as per convention (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error)
* Updated test cases
* Updated documentation

This includes a **breaking change in the Mono-Implementation**:
Up to now Exceptions from .NET have been passed back as Errors to the caller. Thus a `try-catch` was requried and the `fn(error, data)` pattern wasn't considered at all.

On Linux/Mono the behavior is now as with Windows/Native .NET: The `fn(error, data)` pattern is always respected and used to pass back exceptions.

Therefore setting version to `0.10.0-pre`. Tag has been created on my fork