Change open() signature to accept pathnames

open()'s signature is now compatible with the standard UNIX routines.
There are no filesystems (yet), so there is a device map in io.c which
maps pathnames to devices.