Fix interprocess_exception throw in file_wrapper::priv_open_or_create.

On Windows the exception object is created using the result of GetLastError().
When compiled using MinGW the throw instruction itself is using some WinApi call which overwrites the last error.
Therefore the error code must be retrieved before the exception is thrown.
Rephrase the #ifdef in errors.hpp
More interprocess_exception fixes & #ifdef rephrasings
* If `BOOST_USE_WINDOWS_H` is defined, <windows.h> and other windows SDK files are included,
otherwise the library declares needed functions and structures to reduce the impact of including
those heavy headers.

*  Added `get_size` to windows_shared_memory.
Removed trailing whitespaces.
Fixes #10011 segment_manager::find( unique_instance_t* ) fails to compile