Changing lsdir to consistently return an slist

If a directory is passed to lsdir which does not exist, it will return
the mismatched type scalar, as compared to its normal return and the
dictated return type in its function definition entry of slist.  This
causes all evaluation to stop in the event of a missing directory due
to mismatched assignment in a var designated as slist.

(cherry picked from commit 2e5a9640e62405de2a9acf56cc5d032fbc4aa630)

Include ChangeLog update.