Additions from docker/zfs

I am currently working on zfs support in docker and add some missing features to your library. Sorry for making a big Pull Request instead of atomic changes, but I need the functionality as it is anyway.

Changes made:

- add Origin and Logicalused property to zfs.Dataset
- add defer flag to zfs.Destroy()
    - Instead of boolean parameters flags would be a better fit IHMO. But this would require a bigger refactoring and I would like to hear your opinion on this first.
- add (*dataset).Diff()

**UPDATE** just discover a bug in Diff() if a file is renamed
**UPDATE2** fixed Diff() bug

I firmly believe that new constants should follow the Go standard naming scheme, as well as the precedent already set by this library: https://github.com/mistifyio/go-zfs/pull/23/files#diff-be5f9a915d16b4c69c820126fc82d061R14

`BLOCK_DEVICE` becomes `BlockDevice`, `CHARACTER_DEVICE` becomes `CharacterDevice`, etc.

While I myself prefer the `FOO_BAR` style, the Go team made the decision for us this time around, and I think it's best to stick with it.

http://golang.org/doc/effective_go.html#mixed-caps
http://stackoverflow.com/questions/22688906/go-naming-conventions-for-const