Refactor to allow for user-defined HUD views

… also non-window HUD hosts.
Add a demo of the new HUD host functionality