Validate menu items instead of beeping if preconditions aren't met.

Next step will probably simply asserting the preconditions, but before that, selected items should automatically be populated if meshes or bones are selected, to reduce a bit of complexity.
Made button wide enough for german text.
Make sure the selected bones don't mutate away while we're still using them.
Cleaned up code. Also, selectedItems is now filled if bones or items are selected, and for clarity's sake, meshes are selected if an item is selected.
Use GLLSelection to find items from selection, and handle validating only in validateUserInterfaceElement:

Finding the item(s) belonging to a certain selection is GLLSelection's
job. Also, thanks to validation, the export and delete actions should
not be called in invalid situations, so don't handle this specifically
(but assert that validation is working as it should, just for peace of
mind).