run-test-suite.py: Make it easier to write back "gold" results to disk
Revamp of cpychecker warnings

This commit combines several changes, all of which affect the "gold"
output for the selftests.

  * RefcountValue:

       * eliminate int "min_external" attribute in favor of
         a WithinRange "external" attribute, capturing the range of
         possible external references, rather than just a lower bound.

       * revamp __str__ to eliminate the "0 + N where N >= " since this
         was confusing to everyone (including me).  Instead, display
         references as owned vs borrowed references e.g.

           * "refs: 1 owned"

           * "refs: 0 owned 1 borrowed"

         resorting to:

           * "refs: 0 owned + B borrowed where 1 <= B <= 0x80000000"

         and the like where necessary (though this does not yet occur in
         the test suite).

  * error messages:

      * emit_refcount_warning

        * combine the various notes into one; tweak some wording;
          eliminate the "for some N" gobblegook in favor of str() of the
          refcount value.

        * use "desc" rather than "v_obj.name" since is more likely to
          be in terms that the user can understand (e.g. "*dictA" rather
          than "PyDictObject").

        * mention " since nothing references it" when dealing with an
          expected refcount of 0.

      * add "memory leak: " and 'future use-after-free: " prefixes to
        reports about refcounting errors, to better indicate the issue.

Also, regenerate all the expected testcase results (using 4.8.2-7)

This also strips out exact column numbering from the results, in favor
of "nn", due to this in run-test-suite.py:
            # GCC 4.7 tracks macro expansions, and this can change the column
            # numbers in error reports: