Adding a UI for adding, editing, and deleting metadata.

This included add, edit, and remove functions in the model as well as some
widgetry and templates for editing, creating, and deleting from the metadata
panel.
Adding access control checks for showing buttons and fixing edit.

Before, the edit was creating new keys in the event of a key change.
Handling some error conditions and squashing duplicate events.