Hexen: Fixed color translations in the Player Setup menu

Simplified the math for determining the translation table index in
loadDoomPatch(). Also added an assertion in the engine's patch
loader to make sure translations don't go past the end of the
translation table array.

Todo: Fix the in-game player colors.
Refactor: Clarifying the palette translation tables
Merge branch 'master' of ssh://deng.git.sourceforge.net/gitroot/deng/deng
Game Save|Refactor: SaveInfo's for legacy save states no longer need to be fudged
Merge branch 'master' of ssh://deng.git.sourceforge.net/gitroot/deng/deng
GCC: Added warning diagnostics option
Fixed: Int-to-pointer casts in 64-bit build

When using the INT2PTR() macro, the difference between 32-bit integers
and 64-bit pointers is taken care of automatically.
GCC|Fixed: Compiler warnings about extra braces
Hexen|Menu|Fixed: In v1.0, cycle through the four available colors

In the Player Setup menu, the "Automatic" color setting is supposed to
cycle through colors 0-3 in Hexen v1.0.
libcommon|Added: Menu object flags for fixed position and layout offset

The MNF_POSITION_FIXED flag causes the dynamic layout algorithm to
skip the object and just apply the predefined fixed position for it.

The MNF_LAYOUT_OFFSET flag causes the dynamic layout algorithm to
apply an extra offset to the dynamic layout origin when it encounters the
object.
Fixed|libcommon|Menu: Layout of items in the Multiplayer Player Setup menu

The mobj preview was in the wrong position. Now it is manually laid out using
the MNF_POSITION_FIXED flag.

Applied some extra padding between items in Heretic and Hexen for
improved appearance.
Fixed|Hexen: Player colors in the Player Setup menu

In Hexen v1.0, there are only 9 translation tables available. When
loading the tables, they are mapped to indices 0-2, 6-8, and 13-15
in the engine's translation tables, as the engine assumes 7 maps
per class.

In R_GetTranslation(), the hexen_v10 mode uses slightly different
logic for determining the actual tclass and tmap to use for the mobj.

Todo: Use the same function elsewhere in the code to translate
from the "logical" player class and color to mobj tclass and tmap.
Fixed|Hexen: Allow warp/setmap only to defined maps

Warping is now only allowed to maps defined in MAPINFO. The "warp"
and "set map" commands will just report failure when attempting to
switch to undefined maps.
Hexen|Fixed: Loading color translation tables for class 2

The lump name of the translation table was incorrectly determined,
as a printf formatting of %X only works up to table index 15. Hexen
has 21 tables.

Refactoring the R_GetTranslation() method for more clarity and
elegance. Class 2 is now also available as the lumps are read
correctly.
Hexen|Refactor: Unifying logic for setting mobj color translation

It is not a good idea to spread the logic for player color translation
across many places in the code base. Now the final mobj tclass
and tmap are set in a single place, and the player color stored
in the mobj's MF_TRANSLATION is the logical player color.

Todo: Remove the special cases throughout the code base for
swapping tmap colors; it will all be logical colors now.
Hexen|libcommon: Simplifying color translations

The player 'colorMap' member now stores the player's spawn color
in all games.

Removed special cases where translations were being swapped
for the Hexen Fighter class.
Hexen|libcommon: Cleanup
Game Save|Refactor: Continued work toward improving save state recognition robustness
Merge branch 'master' of ssh://Air-Force.local/~jaakko/Projects/deng
Fixed: Sprite color translation not set when projecting sprites

There was a bug in R_ProjectSprites() that caused the mobj's tclass and
tmap to be completely ignored when projecting sprites.

Clients are now allowed to set the visible color translation for remote objects.