Fix #811 - Gallery does not treat version '1.1' as the same as '1.1.0' and both can exist

This adds normalization code to the Package Ingestion process and Display action.

**OPEN QUESTION**: We have a number of packages with non-normalized Semantic Versions (i.e. "1.00"), even where duplicates do NOT exist. If we take the last commit in this PR (e54ead0), those packages can be accessed even via URLs like "packages/Id/1.0.0". HOWEVER, this comes at a performance penalty as we have to do a manual search through all versions for a particular Package Registration. So, it comes down to three options:

1. Don't support legacy data, if the package Version is something like "01.00" in the DB, the package is inaccessible (we will, of course, run a job to clean up existing data, but there are timing issues)
2. Support Legacy Data, since most of our links will avoid the low-performance path
3. Hybrid: Do Option 2, clean the data, and remove the legacy code in the next sprint.

Fixes #811