I’ve got a simple Keyboard HID driver working for the UNO’s atmega8u2 which lets the UNO behave as a keyboard. It still needs some work, but seems to work well.
I’ve posted the details, source, and hex file here http://hunt.net.nz/users/darran for anyone that’s interested. The same approach should work for creating other USB device drivers (e.g. mouse, joystick, etc).