Implement collapsible menu widget.

[Resolves #54]