feat(util/lean_path): normalize path in function dirname
feat(build): build standard library when building on Windows
feat(linja): remove drivename to fix problems with ninja

Remark: this is a little bit hackish, we should look for a better solution.
feat(util/lean_path): support LEAN_PATH that uses ':' instead of ';' on Windows
fix(tests): make sure tests can be executed on Windows msys2 shell
fix(util/memory): redefine the non-throwing versions of the new
operator.

In some platforms, the following operator new is used

   void* operator new(std::size_t sz, std::nothrow_t const &)

Since, it was not defined by memory.cpp, a crash would happen whenever
our delete was invoked.

   void  operator delete(void * ptr) throw() { return lean::free(ptr); }

Our delete assumes the memory was allocated with our new at memory.cpp

   void* operator new(std::size_t sz)