WIP: Modified how update stores remote packages.

It used to annotate the package table with some extra fields.  The problem
with this is that it means you can't easily iterate over available
packages.  So, instead of being {..., repository=..., branch=...}, it's
now {packages={...}, repository=..., branch=...}.