Fixed|InFine: Rotating objects

The rotation of Infine objects was broken in the 2010 refactoring.
Non-text objects are supposed to rotate around their visible centers.

Added a "gyrations" test script that can be used to test the rotations.

See: https://sourceforge.net/p/deng/bugs/1006/
Fixed|Server: Calculating scores for deltas

The code for determining a delta's score used incorrect logic.

See: http://sourceforge.net/p/deng/bugs/1083/
Cleanup
Merge branch 'master' of github.com:skyjake/Doomsday-Engine
Fixed: Don't assume a sprite is in Patch format

At sprite definition time validate whether the associated resource
is a Patch and if so, obtain the world dimension and offset values
to attribute with the sprite. Otherwise, ignore the resource for
now and allow the texture loader to attribute the world dimensions
from the pixel dimensions of image resource at load time.
Patch|Debug: Check Patch geometry in debug builds

In debug builds test the geometry of Patch format images to determine
whether the declared height in the header matches the "real" height of
the composited posts. If heights are inequal log an INFO message.
Cleanup
Fixed: Fatal error attempting to enter lighting debug mode

A fatal error occurred upon attempting to enter lighting debug mode
if a map plane's surface was missing a material.
Patch: Clamp post pixel ranges in Patch::load()

The height dimension value as declared in the patch header may well
be less than the "real" height of the composited image. Consequently
it is necessary to clamp post pixel ranges when compositing the image
to the output buffer.

This is the reason why map drawing in the id tech 1 software renderer
can be seen to "overdraw" posts - the wall column drawer is working
with post pixel ranges rather than the "logical" height declared in
the header.

Todo: Apply this information to texture/material creation.
Documentation|Patch: Patch apidoc improvements
Fixed: Don't assume a texture in the Patches scheme is in Patch format
Patch|Refactor: Replaced Patch::Header with Patch::Metadata

Exposing the "raw" serialized format header and the deserialization
mechanism is no longer sufficient as we need to preprocess the posts
in order to describe the patch.

Todo: Revise/cleanup the API.
Patch: Both Patch dimension sets are now available in Patch::Metadata

Also added a clipToLogicalDimensions flag to Patch::load().
Fixed|CompositeTexture: Dynamically enlarge CompositeTexture geometry

The behavior of the id Tech 1 software renderer's column drawer is
to ignore the logical dimensions of composite textures. Instead a
wall column is drawn with respect to the actual pixel dimensions of
the component patches.

When preparing CompositeTextures the final geometry of the composited
texture is calculated according to the union of all component patch
geometries. Which, will in turn be propagated to derived materials.

Fixes: Bug#1071 (Patch texture composition logic errors)
Documentation|libdeng2: Updated Reader apidoc
Fixed|DisplayMode: Factor in the original color transfer curve

When Doomsday modifies the display's color transfer function, it
shouldn't override the monitor color calibration that the user has
done. Now the user's native color curve is factored in to the curve
that Doomsday specifies (which is based on a linear color space).
Cleanup
Fixed|Doom: Doom's FIRELAV texture animation is from FIRELAV3..FIRELAVA

Fixed a long standing typo in the texture animation group definitions
which had the unfortunate effect of producing a 414 frame animation
in the newly released Back to Saturn X Episode I.
Merge branch 'master' of github.com:skyjake/Doomsday-Engine
Merge branch 'master' of ssh://github.com/skyjake/Doomsday-Engine