Merge branch 'master' into ft-attacheffect

Also including the AttachEffect WIP implementation.

Tags (can go to both warhead and unit):
AttachEffect.Animation - animation: note, to not get expired pointer issues, animation gets hardcoded to endlessly looping 'til Duration expires.
AttachEffect.Duration - integer, duration in frames
AttachEffect.Cumulative - boolean: If set to yes, unlimited attached effect from this warhead can be on the target. If no, then only one instance can be on a single unit and that one instance gets expanded. Defaults to no.

AttachEffect.SpeedMultiplier - float, defaults to 1
AttachEffect.ArmorMultiplier - float, defaults to 1
AttachEffect.FirepowerMultiplier - float, defaults to 1

These three modifies the target's abilities respectively.

AttachEffect.Cloakable - boolean should allow the target to cloak.

Effects on cloaked units cause random crashes, both if this logic gave the cloak or the unit had it by default.
Tweaks to Attach Effect:
- changed const char * ID to local array (rtfm on string storage and strcmp);
- moved some functions from .h to .cpp;
- added invalidator to ping attach effect when anim expires naturally;
- reformatted code in general (repetitive use of the same expression -> local variable, the compiler will do the same but this way you can actually read the expression without getting old);
TODO: change local track of duration to use CurrentFrame and timers like westwood code does - TechnoClass::Update is not called when the unit is not on the map, e.g. passenger or garrisoned, therefore those states will essentially pause the effect timer (although it looks like this code is removing those effects completely when entering such stages - might not be the best solution, or people will be able to immediately cure negative effects by simply entering a transport);

Note: I have only compiled this code, not tested its correctness.
Commented out the debug lines, status is now compilable.
Committing branch info for AttachEffect.
Filling up AttachEffect branch description.
Merge branch 'various-fixes' into ft-attacheffect
Aaaargh... Template T. And I noticed, fixed it locally, and forgot to commit it back.

Oh well, this tiny change will make Cloakable actually customizable.
Committing up a working implementation of delays and a not-yet working version of residual damage. (Mantis-408)
And a revision update for the other three commits.
Initial commit
related to bug #908369:
Rewrote parts of TechnoClass::GetCursorOverObject to always return ToggleSelect/None when the selected unit is not controllable (being warped out, warping back in, under emp, enslaved...) which was being handled without a centralized solution. Might cause/fix some interesting side-effects.
Related to issue 894905:
fix some problems in the dropship loadout screen (cursor visible, no longer crashes on dismiss).
It's still not hooked up to actually spawn things.
Related to issue #896028:
Rewrote the tab cameo collections to use vectors (resize on demand) instead of static 75 element arrays.
This has received only minimal testing and may still contain lulzy bugs.
Related to bug #895503:
Customizable filenames for observer assets.
[Country]
File.ObserverFlag=xyz.shp ; will use observer.pal
File.ObserverFlag=foo.pcx ; will be drawn as pcx
File.ObserverFlagAltPalette=yes ; will use yrii.pal when drawing xyz.shp
File.ObserverBackground=qwe.shp ; wil use observer.pal, should be of the same size as it is now
File.ObserverBackground=bar.pcx ; will be drawn as pcx, of the same size as the shp version

Absolutely untested.
Related to bug #896028:
clean up cameo counters when cleaning up everything else scenario related.
fixed cameo count validation when the hook happens before the game's own count validation
keep the stack balanced before abandoning cameo data fetch
Related to bug #908369:
don't override cursor selection for buildings, the function just doesn't work that way
Related to bug 895503:
Damn it feels bad to be an idiot. Fixed loading and usage of new observer image flags, plus a disabled hook to draw observer in singleplay. Not tested enough.
Related to bug #930678:
Westwood code was hardcoding red and blue components of the radiation color in snow theater for some reason. Hardcoding removed.