Return an error from all functions. See go-gl/glfw#8

All GLFW functions except glfwSetErrorCallback, glfwGetVersion, and
glfwGetVersionString can generate errors via the GLFW error callback.
Streamline error handling by using fetchError() instead of <-lastError.
Make fetchError return error instead of *GLFWError.
Cleanup fetchError's select statement.
Fix type "occured" -> "occurred".
Cleanup the flushErrors function.
Merge pull request #96 from go-gl/return_errors

Return errors
Minor cleanup.

Change error printing to be consistent with
65a04face02544d1b4a257388693f7d9ab2d4157.