Piping

DO NOT MERGE YET!!

Although the feature works with simo.js and PythonSimo features, it still needs doing:

Firstly, the timer feature has to be updated so that it does not send messages starting with `!`. (This causes an infinite loop :+1: )

Secondly, the whole feature needs to be refactored away from main.