Suggested fix for Issue #105

I decided to run an experiment and see if changing the `CompositeType.GetHashCode` function would alleviate the issue I described in issue #105

The unit test I attached to issue #105 now passes as a result of the changes made. I followed [Jon Skeet's advice on generating safe hash functions for multiple objects in C#](http://stackoverflow.com/questions/263400/what-is-the-best-algorithm-for-an-overridden-system-object-gethashcode) - what do you think?

P.S. sorry for the noise on this PR - had some trouble figuring out how to squash some commits from my previous PR.