Make it explicit that game_events::manager cannot be copied.

This was implicit since constructing a second manager would cause
an assertion failure. Now it's explicit and enforceable at compile
time.
Qualify some constructors as "explicit".
Move some function definitions outside a class declaration.

This is just to make the class declaration easier to comprehend.
Refactor when event_handler objects are created.

The old way wasn't wrong, but this will make some future refactoring
easier.
Add the function utils::might_contain_variables().

This function does a quick, but imprecise, check to see if a string
might change after variable interpolation. If this function returns
false, it is safe to assume the string will not change.

I thought I saw another function that does this, but I cannot find it.

The usecase I have in mind is where a string will persist for a while,
perhaps for an entire scenario, where optimizations could be made if
the string was constant, and where variables would be uncommon (with
"uncommon" relative to the size of the optimizations). For example,
event names seem to fit.
Remove some functions that have been unused for a year (r54990).