IResponseHandler API improved to provide better error handling.

IResponseHandler was not providing ability to pass the original exception, resulting in a following incomplete stack trace:

tern.TernException: java.lang.IllegalThreadStateException
	at com.genuitec.eclipse.javascript.tern.MyEclipseTernFileSynchronizer$SyncJob$1.onError(MyEclipseTernFileSynchronizer.java:568)
	at tern.server.nodejs.NodejsTernServer.request(NodejsTernServer.java:156)
	at com.genuitec.eclipse.javascript.tern.MyEclipseTernFileSynchronizer$SyncJob.run(MyEclipseTernFileSynchronizer.java:560)
	at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)

I would like to see the cause of the java.lang.IllegalThreadStateException exception in the stack trace and this PR adds such a feature.