Rebuild menu on plugin events

The plugin menu items are difficult to handle dynamically because
of the very limited ability to find and replace menu items inside
an existing menu.

So, we turn to a brute-force approach, and rebuild the entire menu
when a plugin load/unload event is signalled. As these are uncommon,
it's not a problem to do it this way.