better exception handling in Roslyn engine

This should solve #448

We catch compilation exception now and avoid the ugly NULL reference.
Both compilation exception and execute exceptions are exposed as properties on `ScriptResult` (no Exception is rethrown). The callee can decide what to do with them.

The exception is:
 - in the case of execution exception, the real execution exception
 - in case of compilation exception, a scriptcs `ScriptCompilationException` with inner exception being the real Roslyn exception.

As a bonus result, when we print out Exception info, when compilation fails, it's no longer an ugly Roslyn message but something like this:
![2013-09-18_0936](https://f.cloud.github.com/assets/1710369/1163211/5141733c-2036-11e3-901d-a567ac28027e.png)