Make deriving workarounds less ugly for now

rust-lang/rust#18738 still seems broken, but this makes the impls a tad less ugly...
Merge pull request #473 from bjz/deriving-cleanups

Make deriving workarounds less ugly for now