refactored Instancing

removed lots of duplicated code between Instance and CSGInstance