Add quoting, remove backticks, use $PWD

* http://pubs.opengroup.org/onlinepubs/009695399/utilities/xcu_chap02.html#tag_02_06_03
* http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap08.html#tag_08
Do not quote $@

Quoting `$@` passes it as one argument, which confuses `getopts` under
dash.
Further localize IFS changes
Quote the $@
Ensure $IFS is saved and restored

Modifying the environment for a single invocation (i.e. with `VAR=x
command` or `env VAR=x command`) only works for actual commands, not a
built-in like `set`. Consequently, we must manually store the existing
value and restore it after invoking `set`.
Manipulate IFS the long way

Store away the result of `lsrc`, then modify the IFS.