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