Generalized devices, added dev_* functions for convience

Devices no longer have a type, all devices are block devices. Charaacter devices
are a special case of block devices, as are things like keyboard and mouse
devices.
Added fs_read/fs_write functions