Create timeout.h out of prototypes3.h
Split SetReferenceTime into SetReferenceTime/UpdateTimeClasses

UpdateTimeClasses only deals with evaluation context, SetReferenceTime only
deals with setting global variables.
Remove unused variable
Split environment detection code into separate library libenv/

Note the splits:
  sysinfo.h -> known_dirs.h (most of the code uses only known_dirs.h)
  timeout.h -> time_classes.h (timeout.h is now EnvContext-free)
  unix.h -> unix_iface.h (non-detect-related code is kept in unix.h)