Adding log colors

because

* color makes it faster to identify elements of a log message
Listing found OpenAL devices

because the knowledge can be useful
Moving thread name function to a class

because

* that's better organisation
Creating a namespace for memory utilities

because

* that's better organisation
Adding wait for real Wiimote connection

when

* booting from the emulated program entry point

because

* the hybrid Wiimote connection isn't established automatically if the real Wiimote connection isn't present on boot
Adding option to disable Wiimote connection motor notification

by disabling motor

because

* it makes a noise
Removing reading of the emulated Wiimote state in the real Wiimote mode

because

* the purpose of the emulated Wiimote state in the real Wiimote mode is to store the real Wiimote state rather than synchronise with an emulated Wiimote
Showing the Wiimote extension settings

in the extension dialog when it's created

because

* it's useful when considering settings changes
Adding IR to hybrid Wiimote

because

* it makes it easier to change between emulated and real IR
Adding Nunchuk to hybrid Wiimote

because

* it makes it easier to change between the emulated and real Nunchuk
Adding Nunchuk stick calibration

because it's useful for the hybrid Wiimote mode
Changing the Nunchuk stick radius

because

* it should be the same as the calibration radius
Changing the pad stick radius

because

* it should be the same as PAD_Clamp
Changing Wiimote logging from logging all to logging changed data reports

because unchanged data reports

* don't contain meaningful information
* use space in the log history
Synchronising the hybrid Wiimote calibration

because

* it makes control more accurate
Synchronising the hybrid Wiimote extension

by controlling the extension from the real rather than emulated Wiimote in hybrid mode

because

* the real Wiimote extension can control the emulated
* the opposite isn't true because it involve physical attachment
Changing the Nunchuk stick axis from center

if the other axis isn't at center

because

* it's expected by some emulated programs