Part two of client work.

Adds functions for submitting commands to a node, and getting a list of nodes from the system.

Open questions:

1. Right now the types are all of type 'string', should we alias these to something like 'Command' ?

2. Should the client maintain a list of valid nodes which may be sent commands based on the last run of the list node function?
(Tip) You can use backticks to enclose strings with double quotes to avoid escaping. Backtick enclosed strings can also span multiple lines fwiw.