devel_glfw3.1: Return errors

The first commit causes every GLFW function to return an error. The second commit streamlines the error handling process by making use of the new `fetchError` function in place of `<-lastError`.
Problem here. `fetchError` returns `nil` of type `*GLFWError`.

`glfw.Init()` passes it out as type `error`.

So if a user writes innocent code like this:

```
err := glfw.Init()
if err != nil {
	panic(err)
}
```

It will panic because `(error)(nil) != (*glfw.GLFWError)(nil)`.