- rmdir / unlink no longer follow the final symlink
 - rmdir / unlink no longer check write permission on the found object, but on its parent
 - rmdir should return EBUSY when path matches the root / cwd
 - unlinking a directory should return EPERM according to POSIX (EISDIR is a Linux convention)
misc ungetc fixes
Updated rename tests
Convert to new stream API function names
Convert all libc functions to using FS.getStream
initial VFS work

converted to an exception-based API for the FS/VFS

 - added symlink, follow_link, unlink, rmdir, stat, setattr and readdir support to VFS
 - added support for stat, lstat, fstat, fsync, lockf, symlink, readlink, chmod, fchmod, chown, fchown, chdir, fchdir, posix_fallocate, truncate, ftruncate, feof, ferror, fseek
 - removed inode.type property
 - support FS.ignorePermissions
 - added compatibility shims