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`.