added enabled/disabled support

added a simple way to disable menu items.  if the client implemented an isEnabled function for the item it is used, otherwise it is just ignored.