Agree we have to be careful, hence clearly documenting them and trying to tighten semantics (basing on json when anything is quoted) -- but I think it's better to put conveniences here than have each caller roll its own (slightly different) way.

Have removed a lot of the confusion, nested lists etc, and reduced calls to this.  This particular method is currently used only by the start effector, so it can take Location or string -- but if/when that gets cleaned up we can deprecate & remove if we aren't using it elsewhere.  The CLI has similar logic but as it is string-only it currently calls `JavaStringEscapes.unwrapJsonishListIfPossible(locations)` directly, and then `resolve(Iterable)` with strings, the same as what this method does.

The YAML is strict using single string spec or list of string specs which is natural.