New popup approach with no multiple copies of the same popup protection

- core.Popup interface introduced
- All classes inside of popup package support new Popup interface
- PopupRegistry class moved to PopupManager
- PopupEventLoopStopCondition gets onNewCopyLaunch() method to notify current instance should be disabled
- PopupManager gets onNewCopyLaunch() method to disable all popups of the particular class
- Environment openPopup() and openPopupByApp() methods added
- No more Environment.onOpenEvent method
- Luwrain.openFile(), openFiles() (instead of open()) and openPopup() methods is added
- Luwrain.popup() method now takes only a reference to Popup interface
- All necessary changes to reflect new features