Descriptive error messages for julia exceptions

Fixes segfault with PR #14.
From my understanding of julia's capi, `jl_eval_string()`'s return value must be unboxed to get to the actual char* returned by `sprint()`. This is why I originally used `return self.api.jl_bytestring_ptr(msg)`, which doesn't segfault for me.