Add threading to make things smoother

Added a thread that will pop an action from the queue, send IR signal
for that action to the device and wait a little (we wait to allow the
device to see a gap between IR blasts).

Since the thread sending thr IR signal is slow (function of the arduino
plus the wait) the queue only holds one item.

In the main thread we read what key was pressed and add it to the queue
iff the queue is empty. Otherwise we just wait for the next key.

These restrictions have the effect of a (somewhat) smooth IR blaster.
Now the user can hold down the DOWN key and watch the device move DOWN
in little steps relatively quickly. Depressing the key promptly stops
this movement.
Merge pull request #1 from wm/wm-buffer

Add threading to make things smoother