Protocol: encode now accepts Output (no actual encoding of output yet)
Protocol: switcht to local and remote output
Protocol: added BlockingActions and normal Actions
Protocol: implemented the basics of BLockingAction and Action