Rework perfect foresight handling of initial and terminal values

  1. Disentangle the purpose of various blocks (see https://archives.dynare.org/DynareWiki/DeterministicSimulationBlocks)
  2. Eliminate reuse of oo_.steady_state for different purposes.
  3. Phase out the global variables ex0_ and ys0_ used in make_ex_ and make_y_

Related to preprocessor#104 (closed) and #1866 (closed)