This splits the 'package' table into 'packages' and 'package_versions',
which should improve performance in some cases and simplify some future
queries.
Previously it wasn't very well defined whether packages were uniquely
identified by (system, name) or by (system, category, name). This is now
normalized to the latter form. This required changes to the package URLs
to include the category.
This allows for a more dynamic nav bar without inserting insanely huge
HTML code in the page (as the previous version did in some cases) and
without having to contact the server again.
The 'intro' man page has around 1500 versions, and only generates a page
of ~52KiB (~9.5KiB after compression). The previous HTML version was
106KiB (~10.3KiB after compression). Page generation times have been
improved on the server side (by 50ms for the intro man page), but I've
no idea how significant the effect is of JS is. Feels fast enough,
though.