API: add experimental widget visibility controls
API: add experimental widget visibility controls

Invisible widgets:
 - do not grow horizontally or vertically
 - never report a cursor position

Widgets are visible by default (of course).  There is probably more
that we could do here, such as effectively rendering invisible widgets
unfocusable (we have the machinery to do this) but it's not clear how
well that will really hold up.  So I'm calling this experimental for
now.  This feature need came about because sometimes you want to
customize widgets (like the directory browser) by turning off certain
visual features, but you can't do this at the type level when you
assemble the widget because then you'd need to construct a widget of
one of several different types depending on the visual appearance.
This lets us avoid that problem by keeping the appearance and just not
render the widgets, but it's unclear whether this will have any
interesting consequences.

KommuSoft/vty-ui,ktvoelker/vty-ui