Change the semantics of the widget visible attribute to allow for visiblility: hidden

Now, visible can have three values:
  * True - show the widget
  * False - hide the widget, but show the empty space
  * None - hide the widget and collapse the empty space

Previously, None was not allowed, and False collapsed the empty space.