os.bas

This is different from the CR version.  Errors are raised instead of returning (succeed|fail).  Currently, vb errors are bubbled as is but will be re raised as more detailed errors.
I don't like the switch statement at the end of file system operations, nor do I like using `Err.Raise -1` as a `goto`.  But if I want to handle vb errors later, I can't raise my own.  It's like raising an error in a try-block where everything is excepted whether you like it or not.