surface: Fix Apache's gun direction on the HUD.
surface: Add initialization script for HydraRocket.

Also fixed a variant of constructor for HydraRocket fails to initialize
mass, which leads to strage results.
surface: Add fire() method to Launcher to make it usable from scripts.

Currently only HydraRocketLauncher has effect.
surface: Make HydraRocketLauncher fire missiles in a steady frequency.

Previously we have accumulated ammunition count for all of the same type
of Launchers to determine next Launcher for shooting, but now we decide
the shooting Launcher having maximum ammo, which would be better at
saving simultaneous attack capability.
surface: Make Hellfire be treated like HydraRocket by Apache.

Now much of the codes are shared.

In this process, we added a virtual getter for maximum cooldown time,
i.e. getCooldownTime() and its Squirrel counterpart, cooldownTime.