Hardware cursor support

This PR introduces partial support for hardware cursors:
```csharp
using (var gw = new GameWindow())
{
    gw.Cursor = MouseCursor.Default;
}
```
Due to issues with byte order on different platforms, for now only two predefined cursors are supported:
```csharp
MouseCursor.Default
MouseCursor.Empty
```
A future PR will introduce support for defining custom cursors.