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
Implementing I/O testing over FBCS protocol

This is a prerequisite both for proper interactive simulation,
and for on-device end-to-end testing.
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
Use new simulator uploadGraph in network test