vastspace: Fix Soldier's client beginControl script haven't run

The logic is altered; isServer() == false doesn't necessariliy mean
isClient() == true.  Now we use the correct API call to determine
whether the beginControl script should be set.

Also hidden GLwindows when a Soldier is controlled just like surface
mod's Aerial classes branch.
vastspace: Add icon model for selected gun (assault rifle) for Soldier
vastspace: Add sniper rifle icon texture to indicate equipped weapon
vastspace: Add remaining rounds indicator for each firearm
vastspace: Add gunshot sound for Soldier's guns

It's weird to hear gunshot sound in space, but we need it.
Make Bullet be creatable from Squirrel scripts

Also exposed mass property of Bullet for scripts.
vastspace: Enable scripts to define custom shoot callback for Firearm

M16 demonstrates this with gunfire sound.
Export some Squirrel API for extension modules
vastspace: Allow adding as many Firearm types as possible via script

This is first attempt to implement framework to create multiple classes
by Squirrel script only.  As a demonstration, M16 assault rifle and M40
sniper rifle use the same C++ class but different static parameters.

This mechanism is similar to variants for Destroyer, but it only
provided means to define default turret types.

Introducing this mechanism actually reduces line of codes by removing
redundant codes in C++.
vastspace: Make HUD overlay icons customizable for Firearms

Now, every aspect of a Firearm can be customized without native code.
vastspace: Add sniper rifle's gunshot sound
Experimental use of jHitPolygon for all polygons in Shipyard mesh

Hit shape matches appearance better than simplified hitboxes (in fact,
hit shape is defined as the same way as the visual model), but it
would cost more calculation time as number of polygons for visualization
is much higher than hitboxes.
vastspace: Allow standing on hooked Shipyard surface

Space Soldiers wear electromagnetic shoes to attach their feet onto
metallic surface in order to walk on it.  Hooking on a surface make
one to attach on the hooked surface.  Shooting another surface with
the hook or walking out of the face detaches from surface.

When attached, the player can control a Soldier like on the Earth's
surface, which means the mouse controls the view in lathe-like
manner.

This feature is so complex that only Shipyard support it for Soldier,
but it looks like it's a good starting point.

Also adjusted Soldier's camera view position which has not matched with
the model's head.
vastspace: Add status icon to indicate a controlled Soldier's status

Currently only standing and free statuses are available.
vastspace: Add jump command to force detaching a Soldier from surface
Expose GetFaceInfoCommand handler for use by Entities other than Shipyard
Polygon based hit checking supports Models consisting of multiple Meshes

All meshes in a model are iterated for checking.  Model motions are not
considered yet.
vastspace: Soldiers try to stand on next facet if stepped out one

Previously, if a Soldier is standing on a facet of a model and walk out
of it, he will detach from the facet even if the face is smoothly (in
terms of approximated geometry) connected to another.  Now the Soldier
will try to find another facet that looks continuing and stand on it.

Finding the new facet is done by tracing a ray downward.  The problem is
that the surface may be convex, which means the new facet may facing away
and standing on it is technically unstable.
Determine normal vector by actual vertices instead of mesh normals
Experimentally apply face-based hit check to Destroyer and Attacker