Squashed commit of the following:

commit 16fca4a9e8f18ba16a3fba7076caa24f4014949c
Author: mallard <stuartbrockman@gmail.com>
Date:   Mon Dec 29 23:41:27 2014 +0000

    Added ioctl to clear mouse buffer,

commit 47da3cd775fd2b8942f8e3f92066bdaa9b8875e6
Author: mallard <stuartbrockman@gmail.com>
Date:   Mon Dec 29 23:07:41 2014 +0000

    Added mouse test program.

commit 05683f74d9cd8f83dfde516408f71a1f376f2ebe
Author: mallard <stuartbrockman@gmail.com>
Date:   Mon Dec 29 22:28:17 2014 +0000

    Implemented mouse device.

commit b8493f4c99686018cff38a17435825a7f2f9f647
Author: mallard <stuartbrockman@gmail.com>
Date:   Mon Dec 29 21:25:48 2014 +0000

    Basics of mouse support.

commit 241ca71eacf52e644ce05ca80415a22b96a91847
Author: mallard <stuartbrockman@gmail.com>
Date:   Mon Dec 29 21:00:54 2014 +0000

    Make functions static. Only read one byte from bus per run.

commit f8487b163c6bfd5ec36e725ee78a756373b2222b
Author: mallard <stuartbrockman@gmail.com>
Date:   Mon Dec 29 20:37:00 2014 +0000

    Make globals static to avoid conflicts with mouse code.

commit 5c2567a0bbd4dac707ed43ca1d31b9e8b1bb3ac8
Author: mallard <stuartbrockman@gmail.com>
Date:   Mon Dec 29 17:55:56 2014 +0000

    Added code to update keyboard LEDs.

commit bad4a7cdffb4c963edf2fa7a70d6e5a59a5d5fcc
Author: mallard <stuartbrockman@gmail.com>
Date:   Mon Dec 29 17:20:55 2014 +0000

    Ensure devices are disabled before passing on to per-device initialisation.

commit 4603016a6e9c5d850b6cb36b3e2a1c584eabe0d8
Author: mallard <stuartbrockman@gmail.com>
Date:   Mon Dec 29 17:05:36 2014 +0000

    Set keyboard to scancode set 1, don't use translation.

commit 5e93e5aa84b167b9b687054f2df009302b6e8576
Author: mallard <stuartbrockman@gmail.com>
Date:   Mon Dec 29 17:00:09 2014 +0000

    Go through complete PS/2 controller initialisation and device detection sequence. Support keyboard on either port.

commit efeed858f6ef6cba19f9f356b7216701d7943877
Author: mallard <stuartbrockman@gmail.com>
Date:   Mon Dec 29 15:30:55 2014 +0000

    Added functions for reading/writing to PS2 controller.

commit 44a7a1c9a0f00c2983f184fe09d54045ee1edc00
Author: mallard <stuartbrockman@gmail.com>
Date:   Mon Dec 29 11:07:59 2014 +0000

    Moved module bootstrap into separate file.

commit 77ca5f9f5b957c1e31c4faf47fe78f9c60fee770
Author: mallard <stuartbrockman@gmail.com>
Date:   Mon Dec 29 10:57:38 2014 +0000

    Renamed keyboard.sys to ps2.sys.