Refactor launcher user arg parsing (#4824)
Splitting work from #4769 because we are still debugging transformers
integration issues.
Parsing was broken for user arguments (see #4795). Additionally, parsing
of user arguments is tricky and there are lots of edge cases. For
example: #4660, #4716, #3967. I've attempted to accommodate all of the
possible types of string inputs and added unit tests.