Hud-World classes design

Notes for Hud class design:


 * All gui widgets should be owned by Hud and (probably) never leaked outside.
 * Interaction between outside world and Gui widgets should happen via Hud method calls and customised event handlers.
 * Hud events that only lead to hiding/showing another Hud element (like "Inventory" or "Main menu" buttons click) should be processed inside Hud, although we (probably) should allow them to be overridden from outside just like any other event.

(to be continued)