Added support for custom system cursors

This adds 3 functions to the GLFW API: glfwCreateCursor(), glfwDestroyCursor() and glfwSetCursor().

The cursors can be created from RGBA data (from memory). There is a format parameter in glfwCreateCursor which currently has no effect, but could be used to allow different image formats.

There are 2 new tests... one which lets you call different glfw cursor functions and another which animates a cursor by calling glfwSetCursor on the main loop. I noticed a small flickering in the case of the animation on ubuntu but it could be a VM problem.

On osx there is an issue where leaving and entering the window sometimes restores the cursor and sometimes doesn't (you see the default arrow). I noticed the same happens for the hidden cursor so this seems unrelated to the custom cursor, although the problem feels more frequent when using a custom than the hidden one. It's also possible that this is a VM issue altogether, so i'd leave that for testing in a real osx.