Basic support for menus

The change in the `MouseHandler` callback interface deserves careful scrutiny, but it seems to make sense.