Make accel() method accessible from Squirrel scripts.

The function is really a member of WarField, but defined in CoordSys
for particular reason.
Add slen() member function to Vec3d in Squirrel scripts.

Also enabled debugging information for debug builds.
surface: Make Hellfire missile's homing calculation scripted.

Now we can experiment and tweak the algorithm with the game being kept
running, just like Aerial's case.

The algorithm is just dead copied from C++ source, plus some dynamic
variables per Hellfire instance.  The script provided per-instance
variables are stored in tables referred to with the name "object".
surface: Make Apache derive Aerial to display HUD in cockpit.
surface: Review Hellfire algorithm for better homing capability.
surface: Add queryAmmo interface to Aerial for HUD readout.

Apache, A10 and F15 support the interface to show ammunition count for
currently selected weapon on the HUD.  The weapon name is also virtualized
to allow more flexible overrides than just passing list of weapon names
to drawCockpitHUD().
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.
surface: Add fire() method to SidewinderLauncher.
surface: Gathered duplicate codes into fireLaunchers() into Aerial.nut.

Now Apache, F15 and A10 share most of launcher related script codes to
save LOC and bug possibility.
surface: Collected common codes to create drawTargetMarker() function.

Drawing targetting marker is a common task for HMD equipped combat
vehicles.  Aerial vehicles tend to have HMDs so we define the function
as a member of Aerial class.
surface: Delete some commented codes in F15.cpp.
Move aerialLanding definition code to surface module.

This is done because the codes are only necessary if surface module is
loaded.  You won't need to dofile("aerial.nut") for all possible cases.
Now it's loaded when an Aerial vehicle is created.

We have defined it in the main executable's init.nut because we thought
that defining a function as an entry of the root table from initialization
scripts is not possible, which was correct in some extent, but exploiting
Squirrel language features made it possible.

We merely moved aerial.nut to a subdirectory of surface module but not
directly embedded its contents to surface/models/Aerial.nut for two
reasons.
  1. Squirrel scripts are hard to fix syntax errors if they have many
  lines in a file.
  2. Git is better at detecting file moves than content moves.