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.
any reason orientation requires one function whereas gyro/accel require 3?