Fix for issue #100 - Changes to Tolerance definitions

Created unit tests for Tolerance adding tests for the changes I made plus a few for parts of the class that I felt weren't fully tested.

Renamed Tolerance.Empty to Tolerance.Default and added a Tolerance.Exact which means the default will not be used. I also renamed ToleranceMode.None to Unset to better specify its purpose.

While I was adding the unit tests to the solution, I found that the CollectionsEqualsTests.cs was not included in several of the projects, so I added it.