Data Structures Overhaul - Share Data

  - DrawingSurface holds a vector of shared_ptr<Model3d>
  - avoid some copying and use less memory