ecere/gui/Win32Interface: (#285) Fixed handling lock/fullscreen change
- Problem introduced by 2a9a3ae6df44c1a17d65136540cb29386e0f5e97
- Calling both ShowWindow() and SetWindowPlacement() caused a strange effect
 sometimes noticed when logging back in from a locked screen or when an application
 went fullscreen, happening every time when going fullscreen in a debugged app.
- Was mistakingly assuming that WM_MAXIMIZE activates, while only WM_SHOWMAXIMIZED does
- Setting 'state' data member from SetRootWindowState() to avoid redundant states being set
  again from WM_SIZE thinking that a user initiated the change
- Setting initial lastBits and lastRes on startup to avoid processing WM_DISPLAYCHANGE for the
  initial settings
- Checking whether the foreground window is taking up the fullscreen and not processing
  WM_DISPLAYCHANGE when that is the case
compiler/libec: Forward declaring empty class:struct
compiler/libec: Fixed reference issue with conversion properties
- This fixed an extra referencing level with: Class c; const char * s = c;