change API to work with interface{} instead of []byte

this makes the library more user friendly
all that really matters is that your Read,Write, and Compare
methods can work together.
also started adding useful godocs