Changes to support changes in Haferlib's GUI package. Tabs no longer
disable on all clickedElsewheres but rather just when other tabs are
clicked.
Changes for tab ids.

Tabs have an id field now. PlayerTabs use it, so Players have an id now
which is equal to their absolute file path. AbstractFactoryDataReader
was changed to pass the correct information on. TabState was adjusted to
enable/disable tabs by id rather than name.