Hash and equal algorithms for struct and array types

Also ban a few more types from comparisons.
Merge pull request #191 from pcc/libgo-alg

Hash and equal algorithms for struct and array types