Apply V8 patch to get stack traces from stack overflow RangeErrors

V8 bug 2394, v8 svn change 12933:
    https://code.google.com/p/v8/source/detail?r=12933
Chromium bug 11275186:
    https://chromiumcodereview.appspot.com/11275186

I just took the raw patch from the "raw" link for "patch set 4"
at the chromiumcodereview.appspot.com link, and applied it via
"patch" ("git apply" was ignoring me). It applied cleanly, but
it deletes a JS-side function DefineOneShotAccessor() which was
unused at the point the patch was authored (the patch deleted
the last existing callsite, so removed the implementation as well)
but which still has other callsites on this older branch, so I
left the deletion out of the patch (and left the function in the
source tree).
Put try/catch around the dangerous part of CallSiteToString.
If it fails, at least we have the file/line/column information.

(This addresses V8:2757, https://code.google.com/p/v8/issues/detail?id=2757.)
Backport this bugfix from v8 that came in around version v3.19.13 (and
showed up in node v0.11.3).

https://codereview.chromium.org/16286018/

This gets rid of long GC pauses caused by processing weakmaps too many
times during a garbage collection.
Reapply Demeterr floating patches.

Merge branch 'v0.10.20-de' into v0.10.22-de

commit 79d261af2726cfa4454d519a69cdce776b13bc97
Author: Dan Scales <ds@demeterr.com>
Date:   Fri Oct 4 15:05:57 2013 -0700

    Backport this bugfix from v8 that came in around version v3.19.13 (and
    showed up in node v0.11.3).

    https://codereview.chromium.org/16286018/

    This gets rid of long GC pauses caused by processing weakmaps too many
    times during a garbage collection.

commit bc21c203bdbadf0f2f7112c44952bea3099095a2
Author: Matt Ginzton <mg@demeterr.com>
Date:   Tue Sep 24 17:50:08 2013 -0700

    Put try/catch around the dangerous part of CallSiteToString.
    If it fails, at least we have the file/line/column information.

    (This addresses V8:2757, https://code.google.com/p/v8/issues/detail?id=2757.)

commit e22a25451260936d95b2fd37689e50430e9d73fc
Author: Matt Ginzton <mg@demeterr.com>
Date:   Tue Sep 24 17:35:18 2013 -0700

    Apply V8 patch to get stack traces from stack overflow RangeErrors

    V8 bug 2394, v8 svn change 12933:
        https://code.google.com/p/v8/source/detail?r=12933
    Chromium bug 11275186:
        https://chromiumcodereview.appspot.com/11275186

    I just took the raw patch from the "raw" link for "patch set 4"
    at the chromiumcodereview.appspot.com link, and applied it via
    "patch" ("git apply" was ignoring me). It applied cleanly, but
    it deletes a JS-side function DefineOneShotAccessor() which was
    unused at the point the patch was authored (the patch deleted
    the last existing callsite, so removed the implementation as well)
    but which still has other callsites on this older branch, so I
    left the deletion out of the patch (and left the function in the
    source tree).
Improve display of stack frames that failed to decode.

If we fail to decode the function name in CallSiteToString(), we
generate a fallback string with the location and error message.

This change
- makes the fallback string look more like the success-case string
  (ending with the location in parentheses)
- makes more explicit the fact that the exception/error was in the
  stack frame decode, not related to the earlier problem that
  presumably caused us to take a stack trace in the first place.
Use util.inspect instead of JSON.stringify to format values.

In assert-fail messages, by default this prints

  val1 op val2

where val1 and val2 were formatted via JSON.stringify.

JSON.stringify has multiple problems which util.inspect remedies:
- faults on proxies (in V8 before 3.15)
- faults on circular references
Add a demeterr-specific version tag.

The supported mechanism to do this is via "./configure", as in
"./configure --tag de-20131114".

I chose to do it in the source code instead, so that
- if someone else builds this, they can't forget to use the tag
  (they can forget to change it, but that's less bad)
- if I switch branches and rebuild, I don't accidentally reuse
  the tag
Basically, it's nicer having the fact that we use a special tag
visible to the source control system.