Refactor|Resources: Revised Material resource model

Implemented a MaterialAnimator concept and revised the old context
"variant" stuff accordingly. The idea is that each material usage
context (map surface, UI, etc...) has it's own client-side Animator
which is responsible for animating an instance of the base Material
resource.

Each MaterialAnimator is configured with a MaterialVariantSpec. This
specification allows for context-specific customization of how the
Material (and any dependent resources) is interpreted.

Material layers and decorations are now modeled with an extensible
object-oriented framework for future enhancement.
Merge branch 'master' of github.com:skyjake/Doomsday-Engine
Documentation|MaterialAnimator|Resources|Client: Explained use of MaterialVariantSpec
Fixed|Doom: IllegalPatternError handling "where" commands