Improve the build and restore compatibility with Windows
This series of commits restore the build on Windows and add Windows to the CI. It also fixes several problems along the way (Unix specific code mainly). Installation instructions are also updated.