names: Add a dedicated window class for selecting warp destination

GLWmenu could not handle so many warp destinations that can be created
by random star generation.  The new class, GLWwarp, has no scroll bars
yet, but you can sort items by name or distance.

GLWwarp could be defined in a dedicated header file, but for the moment,
we do not need to use the window anywhere outside of Warpable-draw.cpp.
names: Add vertical scroll bar to GLWwarp
names: Prevent crash in random name generation

We hadn't taken care of all corner cases.
names: Add filtering capability to GLWwarp

Filter condition is only whether the player had visited the star.
The user cannot select any other condition yet.
glwindow: Allow Squirrel script to handle draw and mouse events

Now scripts can output strings and respond to mouse events directly.
It would enable us to create GUI by scripting.

We no longer hesitate to use C++ features, especially lambda expressions.
This would make VC2010 and earlier completely unsupported.
We should also obtain latest version of gcc to build on Linux.
glwindow: GLwindow returns clientRect() in Squirrel script

GLWrect class is also defined for Squirrel VM.
glwindow: Make onMouse event handler have string arguments

Previously, we have passed key and state to the handler as integer
values, which is difficult to identify by just looking at.
Squirrel's standard library seems to prefer using strings to represent
enumerative values.  We will follow its way.
Include Squirrel standard string library to the VM

We will use it extensively for GUI elements.
Add all OpenGL constants that can be used with glBegin()
Add glColor4f(v) to Squirrel API
Fix a bug in WarpCommand constructor for destination position
glwindow: Pass GLwindowState variables to onDraw handler in Squirrel
glwindow: Add GLwindowSizeable's constructor for Squirrel