(#13202) Modify join() to pass strings unmodified without errors.

Previously the join function would raise an error if anything besides an
array was passed. This changes it to allow strings to be passed through
join unmodified. This allows puppet code to be written that can accept
either a string or an array, and act appropriately in both cases
automatically. Specifically, join("abc") would return "abc".