Centralise the Validation

Thanks to the magic of the responder chain, we can move (almost) all of the interface element validation into the same place

There are still some context menus items that don't disable when they should, but they didn't before either.