allow include resolver to store checked include conditions and their values into map<conditionID:int, value:bool>
store conditions and values used to resolve includes in CGUIWindow
added CGUIInfoManager::ConditionsChangedValues method
change bool m_loadOnDemand to LOAD_TYPE m_loadType
allow not to free memory (destroy controls objects) when exiting window

added additional checks in AllocResources - we have to load .xml file if:
 - load type is set to LOAD_EVERY_TIME (all windows use it by default)
 - window is loaded and any of include condition have changed value
 - window isn't loaded

we have to unload window before loading if window wasn't unloaded before and include conditions have change value(s)
store and reuse window xml root node
this allows to avoid reading and parsing xml file in windows we already used before and are loaded on demand or their include conditions have changed values
regression fix: override SetInitialVisibility() in CGUIBaseContainer to force restoring static items before restoring control states ( in CGUIWindow::OnInitWindow, SetInitialVisibility() is called before RestoreControlStates() )
not need to call UpdateStaticItems() if we are loading static items from .xml as we do it before SetInitialVisibility is called and it will be called there
keep these windows in memory, they're ready as-is
adjust GUIDialogContextMenu: cleaning up initialization/deinitialization of dialog

- we need additional members to remember window coordinates (these are fetched while loading window .xml file and later are changed when setting position of ContextMenu) and size of background image
- we don't need to call SetInitialVisibility - it's alreadu done in CGUIWindow::OnWindowInit
- we need to manually remove choice buttons in OnDeinitWindow
- we need to store size of background image to properly set its size it in consequent showings
adjust GUIDialogBoxBase: store heading,lines,choices and set them when initing window and if dialog is already active
adjust GUISlideShow: move stoping background loader to window deinit
adjust GUIDialogMediaSource: clear list with paths on deinit
adjust GUIDialogSelect: don't reset GUIViewControl when leaving window, clear it
reset it when we unload window
adjust GUIDialogNetworkSetup: change control types only when we load window, fill/clear protocol spinner when we init/deinit window
adjust GUIDialogPeripheralManager: we would run OnInitWindow twice due to not consuming GUI_MSG_WINDOW_INIT message
also move init actions to OnInitWindow callback
adjust GUIDialogVideoScan: hide progress controls if not used
adjust GUIDialogSlider: nullify callbacks on window deinit
adjust GUIWindowFullscreen: don't toggle DynamicResourceAlloc, shuffle deinit order a little and let generic window code to handle control unloading/freeing
adjust GUIDialogTextViewer: reset textarea and heading controls after deinit
adjust GUIDialogSmartPlaylistEditor: move playlist type specific configuration to OnInitWindow
adjust GUIDialogSmartPlaylistRule: clear rule spinner before filling it, clear rule and operand spinner on deinit and try to change value button to edit control just once on window load
adjust GUIWindowSystemInfo: clear labels on window deinit