Api changes

Closes #7 

@rcrichton if you could please review?
Actually those aren't random, it's some funky algorithm that creates a hash based on the class name and fields and stuff. But either way's fine by me; I think let's just pick one method and use that consistently.

In fact, I'd actually vote for using your method then, since otherwise one would be dependent on an IDE that can generate those.