Return previous callbacks

My motivation here is to make it possible to have reusable
pieces of code which you can plug in just by feeding it the
`*glfw.Window`. The reusable pieces would be called last and
they could record the previous callback and call it, forming
a callback chain.

The sort of thing you could do is implement a camera system
where you only need one function call to specify the window
and another to get the transformation matrix.

Strictly speaking, this is an API-change. However, I haven't
managed to find any examples that don't compile correctly after
this change yet, so I'm not sure if it counts as an 
API-breaking-change.

@tapir @shurcooL
I would suggest using named result parameters to make the code a little shorter, and to have better docs.

```Go
func SetErrorCallback(cbfun ErrorCallback) (previous ErrorCallback) {
```

See #51 and #52 for example.