remove Option return types from FFI declarations

On i386, rustc expects Option instances to be returned on the stack. The caller
passes a pointer to allocated stack space and the callee fills it in. This is
not the calling convention expected by C functions like glfwSetErrorCallback
that return a pointer in EAX.

Somehow this led to a segfault on i386 because the stack pointer was incorrect
when returning from the caller. This didn't happen on x86-64.