SerialConn: check if port actually exists

If a given port does not exist, MONK did not respond with any kind of error
message. Now it says that the port is not correct.

For this purpose SerialConn got a new method _is_serialport which checks
whether the given port is a usable tty, and uses this method before keeping the
value of the constructor parameter 'port'. If it is not even possible to open
the given file name, the OSError is caught and False is returned. It seems more
reasonable to respond with return False in this case, because the task of the
method is to check the file name. People might actually call this method
specifically to not run into OSErrors.

See GitHub Issue #100.

Signed-off-by: Erik Bernoth <erik.bernoth@gmail.com>
SerialConn: take emptiness check out of _cmd()

Having a _cmd() method check for an empty response and raise a corresponding
Exception was a bad design decision, because it adds on the burden of a
developer that might create their own connection type.

Therefore this check and corresponding param was taken out of _cmd() and needs
to be handled elsewhere. The only place where this feature was used until now
was the _prompt() method. Therefore this method gots a corresponding check
added.

See GitHub Issue #100

Signed-off-by: Erik Bernoth <erik.bernoth@gmail.com>
EchoConnection: explicit "empty" response

It happens that the EchoConnection gets a _cmd() request with an empty command
message, e.g., in the case of being called by _prompt(). However it is unlikely
that there might ever be a case where EchoConnection actually should respond
with an empty string, because such a string is often treated the same way as
`None`. Therefore the decision was made to explicitely return "<empty>" in
these cases.

See GitHub Issue #100

Signed-off-by: Erik Bernoth <erik.bernoth@gmail.com>
Disconnected: don't connect without I/O

While using MONK it feels strange to see a SerialConnection move to the state
Connected even when the target device is still deactivated. Therefore the state
Disconnected now asks for a new prompt after a connection was "established" and
if nothing is received (=_prompt raises EmptyResponseException) the state stays
at Disconnected and raises a CantConnectException.

See GitHub Issue #100.

Signed-off-by: Erik Bernoth <erik.bernoth@gmail.com>