Add compile-time checks for interface compliance.

this is a little trick i picked up...can't remember where, somewhere on the go-nuts mailing list. it's just a nice way of ensuring that code won't even compile unless the structs correctly implement the interface.