Better include dependency graph generator

Rewrite the include dependency graph generator to use the scripts used
for the doc-check target.  Most of the graph generation code is still
the same as in the old includedeps.py (except for some renaming and
other cleanup), but it now uses the data structures in gmxtree.py as
input instead of custom parsing.  Only real differences in the output
for now:
 - The module graph colors nodes based on the group they are documented
   in.  All modules that don't have explicit documentation are now
   marked as "legacy".
 - The file graphs don't use clusters for subdirectories, but instead
   only color tests differently.  Not sure which one is clearer; the
   answer may even depend on the module.

However, the new code is much cleaner and easier to extend than the old
one was, so improving the graphs further should be much easier now.

The generated graph is also laid out differently, but that may just be
by chance; because of existing cyclic dependencies, dot doesn't produce
stable layouts, and the layout can depend on the order of things in the
generated graph.  Since the internal data structures are now mainly
dicts, stuff is likely in a different order than what it used to be.

doxygen.md now also has a bit more documentation for the graphs.

Change-Id: I0530c8e4278890fdb5b5d874bda6fef3521a704e
Improve version information handling

- Always use the same mechanism (a generated source file) to communicate
  the version information from the build system to the source, even when
  not using git to generate the info.  This allows removing several
  variables from config.h.
- Rename the generated file from gitversion.c to baseversion-gen.c to
  better reflect its new role.  Rename the header correspondingly.
- Add utility/baseversion.h to provide functions to access the version
  information, and use the new functions in a few places that were using
  copyrite.cpp only for GromacsVersion().  This removes some cyclic
  dependencies and warnings from the new Doxygen checker.
- Make checkpoint.c use the full version string in the checking instead
  of VERSION, which is now removed from config.h.  It is anyways
  checking also the build time, so it doesn't hurt even if the version
  string is more specific.

Change-Id: Ie85bab434a5e8c7e4e1a72b0af726ea4ea1f8d6f
Optimize intermodule dependencies

- Move genconf from gmxana to gmxpreprocess.  sortwater.* is used by
  genconf and grompp, so moving them to the same place allows moving
  these files as well, removing all dependencies between gmxana and
  gmxpreprocess.
- Move utility/path.* to fileio/.  This removes a cyclic dependency
  between utility and fileio modules.  Can be moved back if #950 gets
  resolved such that nothing in path.h no longer depends on futil.h.

Change-Id: Ia81173d4845143dc3cc94e0c200cab96c87308a5