Merge pull request #60 from gzm0/equals-hash

Implement hashCode and equals
Add tests for collections (partial #31)