Move MTurret class definition to dedicated header file

MTurret and GatlingTurret have been exposed to all sources that include
just ArmBase, but that's not desirable.
Update MTurret model drawing method

The old method required precompiled .bin files which are obsolete.
The model is demonstrated in demo2.nut with Assault as the platform.
Prevent errors on referencing MTurret from a script

The same treatment as df49b25
Add getStatic() method to Entity like CoordSys branch

Now we do not need to define classname() for all Entity descendants.
vastspace: Prevent errors on referencing TorusStationEntity from a script

TorusStationEntity is always created with TorusStation (Astrobj descendant)
which means creating TorusStationEntity alone is prohibited.
Previously, this has been realized by not defining
EntityRegister<TorusStationEntity>, but this led to errors when accessing
the Entity instance from a Squirrel script.  Now we define the register
variable, but disable creation of Entity by instantiating template function.
vastspace: Move modPath() inclusion to vastspace.h from some classes

The modification path is better defined in a dedicated header file.
surface: Prevent Apache runtime error in space by erasing a height calculation
Update GatlingTurret model drawing method

The old method required precompiled .bin files which are obsolete.
The model is demonstrated in demo2.nut with Assault as the platform.
Separated EntityRegister implementation to dedicated header

The EntityRegister mechanism is only referenced by certain sources
(namely Entity-derived classes implementations), so exposing it to
all the sources that include Entity.h is not optimal.
Now the dedicated header EntityRegister.h contains the implementation
of EntityRegister class template.  This new header file requires
inserting an include directive to every Entity descendant sources.
But it will reduce fake dependency between sources and headers.

Also inserted an intermediate class hierarchy between EntityStatic
and EntityRegister; EntityRegisterNC is introduced.
The new class template is used for Entities that cannot be created
by the user scripts.  Typical example of those Entities are turrets
which require mounted platform prior to create it.  Another example
is TorusStationEntity which is created by TorusStation (CoordSys
descendant), so the user script should not be able to create it.
Merge branch 'next2' into gdnext
gundam: Adapted new EntityRegister.h for inclusion