Basically aped this all off of http://golang.org/src/pkg/reflect/deepequal.go

It isn't exactly pretty, but it should work.  In the future we might
want to change the prints to actually print out more useful (like the
    field name of a struct or the literal value of some things)