Use a new base class for manifest entries.

This will help with tracking edits and the addition of provenance fields.
Wire up the edited? methods for manifest entries.
Allow direct editing of aggregates via the manifest.
Allow direct editing of annotations via the manifest.
Merge branch 'editable-manifest' into next

* editable-manifest:
  Allow direct editing of annotations via the manifest.
  Allow direct editing of aggregates via the manifest.
  Wire up the edited? methods for manifest entries.
  Use a new base class for manifest entries.