surface: Separated SurfaceBuilding.cpp's graphics under draw directory.
surface: Add Airport model, but not dynamics shape yet.

SurfaceBuilding class has had a bug that distinct model for each
instance of it could not be used.  That bug is fixed in this commit,
too.
surface: Make SurfaceBuilding to accept landOffset from scripts.

The landOffset parameter controls relative position of a
SurfaceBuilding's model origin.
surface: Improved Airport model's textures.
Make SqInitProcess loadable from arbitrary sources in C++03-way.

The initialization script provider is virtualized to an abstract class
which can be inherited by the user of this API.  This functionality
introduces a slight overhead to construct a intermediate class object
on the stack, but the process should be only invoked at the startup, which
means customizability precedes execution speed.
After all, evaluating a Squirrel script and retrieving values from
the affected VM is far heavier task than the overhead.

If we could utilize C++11 features, we could use std::function instead
of an abstract base class.  In this way, we could use regular function,
lambda expression or functionoid for the same API.  Unluckily, C++11 is not
yet sufficiently supported by compilers out there.  Also we want to
add description() method to get a string about the source provider
on exception in SqInit(), which cannot be achieved in a intuitive way
with std::function.
surface: Add means to assign a hitbox list to a SurfaceBuilding.

Now SurfaceBuiding has a hit shape in the Bullet dynamics world.
It's marked as static (mass == 0).
The shape can be defined in a generating script per instance.
surface: Make hitboxes of SurfaceBuilding represent hit shape with Bullets.

Previously, they only indicate Bullet dynamics engine shape.  To make
it more realistic, we need to make them Bullet ray trace hit shapes, too.
surface: Make AI controlled A10 and F15 stop on the ground.

Previously, they always try to fly no matter where they are, assuming
there's no ground.  Now they just stop increasing throttle if on a
ground.

This behavior is useful for keeping AI controlled planes on an airport.

They're not really detecting ground, but just look velocity and body
orientation to determine whether it look like on a ground.
surface: Spoiler implementation to F15 and A10.
surface: Re-model airport to have some structures.
surface: Erased no longer used landing gear switch in Aerial::control().
surface: Enabled taxiing capability to Aerial on the ground.

You can control steering direction by rudder.
surface: Make A10's shape parameters easier to take off.
surface: Make F15's shape parameters easier to take off.
surface: Refine airport texture and model.
surface: Make Aerial AI not increase throttle when touching ground.

Previously, we determined if a vehicle is touching the ground by its
orientation and velocity, which is not really correct.
We have monitored touching status since taxiing capability is
introduced.  We can use the status to judge if we're really touching
ground (in Bullet Dynamics World).
surface: Make Aerial's friction be affected gradually.

The friction has been affected only by spoiler flag, and it's only
updated when spoiler property is assigned from a Squirrel script.
This commit make the friction affected by fspoiler to reflect its state
in real time.
surface: Make A10's auto pilot be able to taxi to destination.

The auto pilot AI has been able to fly around destination position when
flying, but haven't been able to on the ground.
This commit enables A10 auto pilot to taxi on the ground, using throttle
and rudder.  Unlike flying AI, it will stop when reached the destination.
surface: Experiment with taxi path for A10.

Also tweaked arrival determination radius and steering sensitivity
to look good.
surface: Add navigation lights to the airport (and SurfaceBuilding).

Also fixed a bug that SurfaceBuilding's landOffset property is summed
to the model graphics twice.