Cleaning up old global stuff.
Shared pointers that were passed by reference, now are passed by value.
It worked only for single classes, but if using complex class inheritance, this is needed because if one passes a ChSharedPtr<DERIVED> where a ChSharedPtr<BASE> is expected then a static cast would be needed, with static_cast_chshared<>(), and it would require tto much typing.
Of course passing the shared ptr by value means also a copy, but the overhead should be almost negligible (this issue with shared pointers by value or by reference has been recently discussed by H- Sutter et al., and looks like there is no need to pass by reference hoping for better performance...)
Other demos have been updated to use the new 'asset' approach to visualization, to have Irrlicht stuff as least intrusive as possible.