showOSD: Fix handling of defined 'falsy' parameters
For the OSD, all parameters except for the icon are optional - if the caller doesn't include the 'label' option, the OSD won't show a label etc.
While this makes sense for an API, it means that we have to be careful to correctly differentiate an option that was omitted and an option that has a 'falsy' value like false or 0.
Unfortunately since commit ccaae5d3 we no longer do, with the result that OSDs meant for the first monitor will show up on all, and a level of 0 is presented as no level bar instead of an empty one, whoops.