Expose game paused to Lua; disable bulletin board when paused

Work towards closing #2732.

One remaining task is to give some visual cue to the user that the
bulletin board is no longer clickable.

Emit the pause state on game creation

This prevents our assumption that no game == paused from being violated
when a Game is constructed in another state.
Expose the 'visibility changed' property of a Widget

Use a standard signal, not an accumulated signal.
Decouple Container from Widget; no access to m_visible

m_visible should not be accessible from Container - it's an artifact of
Container being friends with Widget to access other members.

The base NotifyVisible function was not being called from
Container::NotifyVisible. This is now fixed.
Prefer tabs in formatting
Add Event's destructor to the v-table just to be safe

The standard describes behaviour as undefined if a base class typed
pointer is used to delete a derived class with a non-virtual destructor
if a v-table is present.

http://stackoverflow.com/questions/461203/when-to-use-virtual-destructors

This isn't a problem yet with this class. This commit just nips it in
the bud.
Grey out bulletin board adverts when paused.

Work towards closing #2732.

Use a different shade than 'disallowed' adverts to visually indicate
that they are disabled for a different reason.
Ensure adverts that are open in ChatForms can't be removed, closes #2732

Attempts to remove an advert that is open in a chat form cause it to be
removed when the chat is closed.

Detect when a ChatForm is closed, and call its OnClosed method.

This unlocks any locked adverts using a lock count to allow multiple
chat windows to lock an advert.
Merge remote-tracking branch 'rob-h-w/master' (Lua pause/unpause)