Implement mouse cursor support.

Currently modelled off of X11. Custom cursors are untested but system cursors work fine.

Fixes Issue #3