Use grunt-mocha-test instead of grunt-cafe-mocha

Much better error/debugging output
DeviceCommunication: Don't treat debug+iochange as response, emit commands also when not sending
DeviceCommunication: Fix invalid end of transmission message
TEMP: Start of implementing I/O changes over protocol

Prerequisite for both simulation and on-device testing

FIXME: requires to finally fix a proper interface for two-way communication with device.
Propose a CoffeeScript class: "DeviceCommunication", to mirror "HostCommunication"
which is an EventEmitter, take a Transport
TEMP: use new deviceomm
TEMP: attempt to fix io-comm
Send dedicated command as response on I/O changes triggered by host

DeviceCommunication.sendCommands expects one response per command,
and we need to be able to ignore the commands which are not responses
to host-initiated messages