Properly handling None passed as MenuItem callback, to disable item

I've been using a combined version of @tito's and @hiroshi's forks, but here's a little contribution from me.

I needed a way to reliably disable a MenuItem instance, i.e. one that had already got a callback set. I wanted to disable it by removing the callback. Passing `None` to `.set_callback()` didn't seem to work all the time, so I added a check to ensure the callback is properly removed.