Make VersionTo, VersionFrom and PreRelease part of package material identity

Currently, when we add a material Package Id 'Sales package' version >= 3.1 and version < 3.2 for a branch it works fine but if I try to add a material (for another pipeline) Package Id 'Sales package' version >= 3.2 and version < 3.3, the UI shows an error "Cannot save package or repo, found duplicate packages.".

This PR changes the identity columns used for the pacakge from __PackageId__+__IncludePreRelease__ to __PackageId__+__IncludePreRelease__+__PollVersionFrom__+__PollVersionTo__.

(there's a couple of other commits in there to get better coverage and to fix a failing test)