Communication protocol

Refactoring the communication protocol code, got the command runner to run scripts and send to to the hub, added tests for reading+running a high-level script and running a binary file.
Again, future refactoring really necessary for making constants. Maybe we should have a constants header file