Move 'real' definition to utility/real.h

- types/simple.h still includes the new header to avoid touching all
  code depending on this.
- Go through most files outside gmxlib and mdlib that included
  types/simple.h, and checked whether headers from utility/ could
  fulfill the needs.  Replaced at least in places where this helped
  fully remove legacyheaders/ dependencies.
- Some minor changes elsewhere to remove legacyheaders/ dependencies
  from modules.  Now linearalgebra/ and statistics/ don't depend on
  legacyheaders, improving the layout of the dependency graph
  significantly.

In the long run, this may be better outside utility/ to better
distinguish code that depends on 'real' from parts that do not.
Currently, it would create a lot of cyclic dependencies everywhere else.

Part of #1415.

Change-Id: I2aa1890357377d0d14c05b3968e1b36e1023458f