Added support for the 'list' request and defined the format of its response:
A list of dictionaries, with each dictionary having a mandatory key of 'name' and optional keys of 'input' and 'output'. The value for 'name' is a string, or something convertible to a string, and the value of either 'input' or 'output' is a string representation of what is expected.
Within the representation, 'i' is for an integer value, 'd' is for a double value, 's' is for a string value, '.' is for an arbitrary value, '()' is used to bracket a list value, '[]' is used to bracket a dictionary value, '+' indicates that the preceding value appears at least once and '*' indicates that the preceding value appears zero or more times.