Backwards-compatible type-safe enum behavior

Fixes #55.  There were two cases to handle:

1. Old-style enum such as `blend,add`.  The values here are case-insensitive.
2. Raw integers such as `GAMESTATE:IsPlayerEnabled(0)`.  These appear to have been done away with so that we know anything coming from Lua via `CheckEnum` is a valid enum value.

What's more, `GAMESTATE:ApplyGameCommand` was just inconsistent and weird.  This patchset should modify things appropriately if you use the old syntax (an integer for a player number instead of an enum string) and leave them be if you use the SM5 syntax.