Adds support for encoding and decoding IDE, SATA, SCSI and USB devices

Closes #7, #8.