Implement actual robot handling

This allows the test suite to do Stuff(TM) using a robot defined
somewhere else.

TODO:
- Document that robot (post hardware description and arduino code)
- Decouple the idea of "ability to manipulate cards in reader" from
  "ability to use keyboard". The two are not related, really.
Reorder things slightly

The "slotevent" test would eject the card, not wait for the result, and
then exit. This would cause the "mechlist" test to fail due to a
CKR_DEVICE_ERROR.

We should possibly figure out if we can actually fix the
CKR_DEVICE_ERROR (although that may be something we can't actually do),
but for now at least keep things in a proper state when we SKIP a test.
Provide a more detailed error message when things fail
Don't forget to return TRUE when the device is already open
We don't need a delay *that* long
Whitespace cleanup
Fix check

"dev" is a char* containing a device name; "robot_dev" is an fd.

Verify the correct file descriptor...
Decouple "want dialogs" flag from "have robot" flag.
Produce an error message when the user tried something that doesn't work.