Add dependency tracking for emscripten build, -MP for deleted files
Add dependency tracking for emscripten build, -MP for deleted files

- Bug fix for #5: add -MMD for the emscripten build. This will
  generate build/*.em.d files that have the dependencies for the
  emscripten build. Although in almost all cases these will be the
  same as the native build, it's safer to have a separate file, as
  there may be conditional compilation with #ifdef __EMSCRIPTEN__
  that has different includes for the emscripten build.
- Bug fix for #6: add -MP. This will generate phony target rules for
  all the include files. When an include file is deleted, the phony
  target will prevent make from producing an error ( "*** No rule to
  make target `dummy.h', needed by `build/main.o'. Stop ." )
- Bug fix: if emscripten build runs before native build,
  create necessary subdirectories for build output
- Removed redundant mkdir commands: the www and bin directories were
  being created both as a top level command and in the make rules
- Change emscripten build output to be consistent with native build output:
  the cpp files display an abbreviated compiler invocation, and the
  final output shows the full compiler invocation with all flags
- http://make.mad-scientist.net/papers/advanced-auto-dependency-generation/
  was helpful to understand the -MMD and -MP options, as well as other
  GCC dependency management flags and GNU Make dependency management
  features.

redblobgames/helloworld-sdl2-opengl-emscripten,redblobgames/helloworld-sdl2-opengl-emscripten,redblobgames/helloworld-sdl2-opengl-emscripten