Refactor|Material: Use QList for Material's list of variant instances

Plus more cleanup refactorings.
Fix typo
Refactor|Material: Replaced Material's variant iteration mechanism
Shell: Basic GUI app stub

Created an empty main window.
Refactor|Material: Moved Material variant selection logic to Material_ChooseVariant()
Cleanup
Refactor|Material: Removed Material_AddVariant()

Material variant creation and selection is now fully encapsulated
within material_t.
Materials: Separate material precache group functionality

Previously the animation group mechanic was dual purposed for both
material animation and group precaching. There is now a separate
grouping system which is currently used solely for precache groups.
Cleanup
Materials: Cache all materials in a given group at once
Cleanup material.cpp dependencies
MaterialVariant: Renamed MaterialVariant's Layer as LayerState

The name "LayerState" better documents the purpose of this data.
Material: Implemented Material_IsAnimated()

Returns true if the material is animated using either the layer-stage
method or the older anim group method.
Refactor|Material: Material encapsulates logic to determine has-decorations state

Although we must presently prepare a variant in order to answer this
question, the user should not care about this (soon to be addressed)
implementation detail.
qmake|Mac OS X: Attempting to fix 10.4 build

At least need to link with HIToolbox.
Disabled group-based method of material animation

We will soon be switching to the stage-based method for animating
all materials.

Define LIBDENG_OLD_MATERIAL_ANIM_METHOD to reinstate support for
this method of material animation.
Server|Mac OS X: Fixed Mac OS 10.4 build
Materials: Generate material layer animations from texture anim groups

Beginning to flesh out the new staged based mechanism for material
animation.

Interpret the game-registered texture anim groups when generating
materials from/for original game textures, reconstructing their
animations in terms of material's layer stages.

Todo: Implement interpretor logics for legacy group animation defs.
Todo: Reimplement smooth texture animation.
Todo: Reimplement support for flags such as PGF_GROUP.
Todo: Cleanup
Materials: Per-context animation states

Completed plumbing work to allow each material variant instance to
be animated independently, according to their usage context. Among
other things, this now means that materials used with UI displays
(such as the control panel and console) are no longer paused when
the client pauses the game.

Plus minor cleanup.
Refactor|MaterialVariant: Minor MaterialVariant cleanup refactorings