surface: Make Apache's chaingun auto-targeting works.

Just gets back to gltest project's way of weapon indexing to revive
auto-targeting codes when the player is controlling.
surface: Add lockon target marker to Apache's HUD.

Codes copied from F15::drawHUD().
It's really a HMD.
surface: Backported fix in Apache::drawHUD() to F15 in the previous commit.

The function gldPutStrokeString() has been disabled, so passing a string
to it won't do anything.
We'd better use gldprintf(), which will format the string for us.
Remove EXPORT macro from WeakPtr's declaration.

WeakPtr is a class template with all member functions defined as inlines,
so we should not add EXPORT macro to its declaration, or the extension
modules end up with linker errors in Visual C++ compiler.
I didn't investigate the issue on Linux gcc, but I suspect gcc is OK in
either way.
Revived equality operators for WeakPtr.

They are disabled because they tend to mess up with complex conditional
statements due to template type inference, but adjusting the logic a bit
made them compile fine in the whole project.

Defining those operators explicitly hopefully avoids unnecessary WeakPtr
object creation in the comparison expression.

To be honest, there's no intrinsic reason to fix this issue now.
The practical reason is that Observer.h is modified for another issue,
which make the whole project recompile, which in turn makes me to think
that it's a good timing to do this.
surface: Make F15's cockpitView() follow missile on seatid 4.
surface: Make Apache::cockpitView() follow missiles just like F15.
Moved SqCallbackProcess from surface to main executable.

The processor worths to embed into core library that it could be used
for anything.
surface: Separated Launcher-derived classes into header and sources.

Just reorganizing code positions to be more balanced.
It's a preparation for the next commit.