Fixing tiny UI text issue

It seems that there is a bug in libRocket currently,
where the "pt" measurement of font is extremely small.
Switching to "px" brings the UI back to reasonable sizes.
Extracting GameStateType into new header

Since there are a lot of classes referencing GameStateType, decided to
decouple it from GameState so that the entirety of GameState doesn’t
need to be included just to refer to the enum.
Changing RocketListeners to pass Events by ref

As a small addition to the change to RocketListener in 0549ff8 to use
lambdas, RocketListener now always passes events by ref instead of by
pointer. The pointer passing was a workaround to allow calls to the
handlers even with no event (by passing nullptr). Instead, now handlers
that don’t care about the event just don’t take the event parameter.
With the lambda notation, supporting parameterless handlers is cleaner.
Alloc Item/skill metadata in contiguous blocks

Instead of holding an array of pointers to Item and Skill objects, the
Metadata list now places them directly into a vector. This has two
benefits: objects allocated in this way will be automatically cleaned
up, and storing the objects in a contiguous block of memory will
improve spatial locality.

To effect this change, the constness of Metadata had to be reconsidered
somewhat. Components that invoke Item/Skill scripts can no longer have
const references to Metadata (which is fine because technically messing
with an Item pointer that Metadata owns is violating the spirit of
constness if not the letter).

Since Metadata will always receive the same ScriptEngine to invoke
Item/Skill scripts, the script engine is now passed into Metadata on
construction. This means that components like the Shortcut Bar (a view
component) no longer need to hold an extra reference to the
ScriptEngine. Components now use the Metadata object as an interface to
invoke item/skill scripts. As a result, the checks to determine if
items exist are now pushed to Metadata. Item/Skill data itself is now
read-only to components outside Metadata, meaning that only components
that invoke item/skill scripts actually need non-const references to
the Metadata object.