serial_io: First Prototype

Implements the idea described in GitHub Issue #60.

The idea here is the following. The main function of our serial class on top of
the already existing pyserial is a commandline like interface. We send a
`cmd()` and receive it's output back.

The corresponding method currently sends the command over the pyserial
interface and reads from it what comes back. Everything until the end of the
command is removed from the output and also the prompt after the command and
everything that follows it. Then the filtered output is returned. If some step
before takes longer then the timeout, then the function returns the incomplete
parsing result.

The last output and confidence about it's result are stored in the object for
a later review by the user.

Signed-off-by: Erik Bernoth <erik.bernoth@gmail.com>
serial_io: separated read and write process

Makes testing easier and the program itself more flexible. Also increases the
likeness of this interface to serial_conn.

See GitHub Issue #60.

Signed-off-by: Erik Bernoth <erik.bernoth@gmail.com>
serial_io: fundamental unit tests and debugging

Added tests for Object creation, a basic cmd() and 2 cases for the read_until
methods. The last method needed an additonal unit test, because start_strip and
end_strip should be tested separately.

See GitHub Issue #60.

Signed-off-by: Erik Bernoth <erik.bernoth@gmail.com>
serial_io: Add confidence output to cmd()

the command should force the user to react to outputs that don't meet the
prompt.

See GitHub Issue #60.

Signed-off-by: Erik Bernoth <erik.bernoth@gmail.com>
serial_io.py: simplify cmd() method

According to the research in Issue #60 (https://github.com/DFE/MONK/issues/60),
the simplest implementation for best case scenarios is only 2 lines. This
commit implements those 2 lines instead of the complex behaviour before.

Issue #69 (https://github.com/DFE/MONK/issues/69) shall improve or replace that
method with a more practical implementation, if that is not already finished
with Issue #61 (https://github.com/DFE/MONK/issues/61).

See Github Issue #60 for details.

Signed-off-by: Erik Bernoth <erik.bernoth@gmail.com>
Acked-by: Steffen Sledz <sledz@dresearch-fe.de>
Acked-by: Eik Binschek <binschek@dresearch-fe.de>