Add optional chainable subtask support

Use the "|" character to indicate that it is valid for a subtask to not
exist. Follow the "|" with the name of an alternate subtask if desired.

Change-Id: Idff6d5142def0208305fad616a0b6c5db690baba
8 files changed