test: improved error handling and reporting (runutil.vim + others)

 * test/runutil.vim:
  * refactored code around reporting of caught exceptions:
   * s:DebugExceptionCaught();
   * s:GetExceptionCaughtMessage();
  * improved error reporting by introducing the concept of a
     ("global"-ish) variable to track whether a "test output buffer" has
     been created (and made the current buffer);
  * s:EVLibTest_RunUtil_Local_TestOutput_WriteErrorMessage():
   * new function modelled after
      s:EVLibTest_RunUtil_Local_TestOutput_WriteTestContextInfo();
  * s:EVLibTest_RunUtil_Local_TestOutput_ReportExceptionCaught():
   * new function modelled after s:DebugExceptionCaught();
  * s:EVLibTest_RunUtil_Local_OutputAuto_WriteMessage_Handle_Pre():
   * new function that takes care of error reporting under non-ideal
      circumstances (an error produced when the "test output buffer" has
      not been created yet, or when there isn't a 'processor_defs_data'
      entry to delegate to the "test output processor", etc.);
    * modified functions
     * s:EVLibTest_RunUtil_Local_TestOutput_WriteTestContextInfo();
     * s:EVLibTest_RunUtil_Local_TestOutput_WriteErrorMessage();
  * EVLibTest_RunUtil_Command_RunTests():
   * error handling improvements:
    * created "outer" 'try..endtry' to take care of function-scope
       cleaning up (mainly in the case of errors);
    * added support for 's:evlib_test_runutil_hasoutputbuffer_flag';
    * several minor error handling improvements;
     * uses new error reporting function(s) (a few 'FIXME' entries thus
        removed);

 * test/base.vim:
  * s:EVLibTest_ProcessorDef_Invoke_WriteTestContextInfo():
   * made 'silent', so messages are only sent to the redirected output
      (and not the console);
  * s:EVLibTest_ProcessorDef_Invoke_WriteErrorMessage():
   * new function, modelled after
      s:EVLibTest_ProcessorDef_Invoke_WriteTestContextInfo();
  * s:EVLibTest_ProcessorDef_UserCall_WriteErrorMessage():
   * new function, modelled after
      s:EVLibTest_ProcessorDef_UserCall_WriteTestContextInfo();
  * updated dictionary with Funcref entries;

 * test/evtest/proc/evtstd/v0-1-0.vim:
  * b:EVLibTest_Processor_Invoked_evtstd_TestOutput_WriteErrorMessage():
     new function, modelled after
     b:EVLibTest_Processor_Invoked_evtstd_TestOutput_WriteTestContextInfo();
  * updated dictionary with Funcref entries;