stbt.py: Check reply from lircd after sending a key press

After sending a key press to a LIRC socket, wait for the reply packet
and check whether the command was executed succesfully. Raise an
exception unless lircd reports success.

The reason for increasing the complexity of LIRC remote implementations is
that currently stbt sends a key press to lircd and doesn't care if the
command was executed successfully. This can lead to test failures due to a
key press not sent. The root cause of these kind of failures is almost
impossible to find, because it's not possible to find out if the set-top-box
ignored the received IR signal, or the IR emitter failed to send it.

Previously, sending a message to lircd was a blocking operation with
indefinite timeout. Now it has a hardcoded 3-second timeout, which
should be more than enough time given that lircd is running locally.

Reading the reply from lircd also has a hardcoded 3-second timeout,
which experimentation shows is sufficient time for lircd to emit the
infrared signal and to send the response message.

For the details of lircd messages see:
http://www.lirc.org/html/technical.html#applications