(KeepGoing) Refactor Signal Handling into keep_going.[h,cpp]

* Refactor KeepGoing support into separate files to reduce the
  clutter in the core of ROSE.

* Adopt policy for setting error codes:

  Set error code(s) local to the failing function. In the case
  of KeepGoing exception/signal handling, the caller becomes
  responsible for setting the failure code(s).

* Set global variable to toggle the KeepGoing feature:

    ROSE::KeepGoing:g_keep_going

  We #define these convenience macros:

      * KEEP_GOING_CAUGHT_FRONTEND_SIGNAL
      * KEEP_GOING_CAUGHT_FRONTEND_SECONDARY_PASS_SIGNAL
      * KEEP_GOING_CAUGHT_BACKEND_UNPARSER_SIGNAL

  Signal/exception handling must be added wherever a loop
  over all the files occurs. This allows us to capture the
  overall status of ROSE processing if multiple files are
  provided.

* Disable AstPerformance processing

  ROSE usually segfaults in AstPerformance processing when
  ROSE is run in -rose:keep_going mode. Therefore, we will
  "disable" AstPerformance processing when KeepGoing is enabled.

(KeepGoingTranslator)

* Add new CLI options for reporting:

     --report-fail    File reporting ROSE failures
     --report-pass    File reporting ROSE successes

* Add new output format to include error codes:

     ss << filename << " "
         << file->get_frontendErrorCode() << " "
         << file->get_unparserErrorCode() << " "
         << file->get_backendCompilerErrorCode() << " "
         << file->get_unparsedFileFailedCompilation();