Make Entity::sq_pushobj() use derived class in Squirrel scripts.

This change is necessary to enable Entity's derived classes to use
additional functions in Squirrel scripts.
surface: Add smoke effect on A10's gun fire.

GAU-8 Avenger generates smoke cloud on firing.
refactor: Rewrite tent3d_line to be more C++ish.