QueueBuffer

QueueBuffer data structure finished and tested for correctness and memory leaks.
Started figuring out how to interface with Linux I2C driver - see drivers/learning/i2c.c

Integrated QueueBuffer into UART; uart_init() registers SIGIO, so that the kernel calls
sigHandlerIO() whenever I/O is available on the UART file descriptor. The signal handler
adds the received data to a QueueBuffer, which can then be read by the user using
uart_read()

Still need to implement the uart_readUBE16(), uart_readUBE32(), etc. convenience
functions.