Fixes to CaughtException and AnalysisException
Fixes to CaughtException and AnalysisException

Two issues:

1. Some exceptions don't derive from Exception (for example
   NoSuchMethodError).  So to avoid problems in checked builds,
   CaughtException.exception needs to have type Object.

2. When an exception is caught by the unittest framework, it prints it
   using its toString() method.  So in order to see the stack trace of
   the CaughtException nested in an AnalysisException, we need
   AnalysisException's toString() to print both the exception and its
   cause (if any).

R=brianwilkerson@google.com, jwren@google.com, scheglov@google.com

Review URL: https://codereview.chromium.org//304293010

git-svn-id: c93d8a2297af3b929165606efe145742a534bc71@37186 260f80e4-7a28-3924-810f-c04153c831b5

dart-lang/sdk,dart-archive/dart-sdk,dart-archive/dart-sdk,dart-lang/sdk,dartino/dart-sdk,dart-archive/dart-sdk,dartino/dart-sdk,dartino/dart-sdk,dart-lang/sdk,dart-lang/sdk,dart-archive/dart-sdk,dart-lang/sdk,dartino/dart-sdk,dart-archive/dart-sdk,dartino/dart-sdk,dart-archive/dart-sdk,dartino/dart-sdk,dart-archive/dart-sdk,dartino/dart-sdk,dart-lang/sdk,dart-lang/sdk,dart-lang/sdk,dartino/dart-sdk,dartino/dart-sdk,dart-archive/dart-sdk,dart-archive/dart-sdk