Improved error handling:

 * JVM Error handling is now conservate.
 * JS errors are caught using dynamic type tests and converted where appropriate
 * Added tests for engine error behaviour
 * Removed dead code and cleaned up project dependencies
Updated version for release