Allows to keep tolerance optional in the new method
When unpickling , the default behavior to create a new tolerance from a pickle string is along the lines of:
self = Tolerance.__new__()
self.__dict__.update(state)
which obviously does not work having a required positional argument in new. This fix allows having no tolerance in __new__ while it is still necessary in the init.