Acess by name infrastructure

- [x] Implemented a singleton VizAccessor class which keeps track of windows
- [x] Each created Viz3d is now stored in a std::map in VizAccessor
- [x] Viz3d is now a shared pointer
- [x] Implemented cv::viz::get(const String &window_name) method
- [x] Same window can be referred to by using its variable name or by cv::viz::get
- [ ] Assignment operator needs to be tested in all operating systems
- [ ] Viz3dImpl destructor needs to be fixed in order to avoid crashing at the end of the program