Handle interface type in GoValueToJsValue

`GoValueToJsValue` currently doesn't handle interface values properly, e.g. when the value comes from decoded JSON:

```
var value []interface{}
jsonData := []byte(`[1,2]`)
json.Unmarshal(jsonData, &value)
myArr := engine.GoValueToJsValue(reflect.ValueOf(value))
```

Without this patch, the value of `myArr` is `[undefined, undefined]`.