menu-window: Move private members into private struct

We previously exposed all internal members through a public header,
when we in fact do not want any of those to be modified by anyone
by ourselves. This commit rectifies that by defining a new
MenuWindowPrivate instance member to store all of our instance
related variables.