Add scroll mouse support
- Listen out for PointerV 9, which (RISC OS 5) mouse drivers use to indicate scroll wheel updates + extra button status
- Changes in the state of the extra buttons are treated the same as changes to normal mouse buttons: signalled via Event_Mouse, and stored in the mouse buffer (for reading via OS_Mouse).
- Changes in the scroll wheel(s) are signalled via Event_Expansion,4. If the event vector call is unclaimed, the kernel's wheel position accumulators will be updated
- Wheel position accumulators can be read via OS_Pointer 2
- Wheel position accumulators implement "wrap to zero" logic on overflow
This matches RISCOS Ltd's implementation (http://www.riscos.com/support/developers/riscos6/input/pointerdevices.html), except that:
- The kernel currently doesn't call PointerV 4, so PointerV 9 is the only way drivers can report wheel + extra button status
- Extra mouse buttons don't generate KeyV transitions
- Our implementation is in the kernel, not an OSPointer module