Fixed uncased file name matching for PUT's on Linux.

Got uncased file name matching for PUT's on case-sensitive
filesystems on Linux to truly work.  To do this, I

- redid the test harness so that FileOpen (which does
  the uncased matching) is no longer just a stand-in for
  fopen to be used during testing, but can also be called
  directly by other modules
- changed the TextFile logic to call FileOpen.

In addition, I modified FileOpen so that it will try to
use the file name with the exact same case as input,
before doing a directory search.

(Q: should file output operations, e.g. writing of SAV
files, also go through uncased file matching?  Upon a
`sav boot' in BOOT.S, if a file `BOOT' exists, should the
`sav' command write to `BOOT', or should it just
continue writing to `boot' anyway?)