Test on oldest supported SDK (dart-lang/stack_trace#57)

- Bump min SDK to 2.0.0
- Run tests and analyzer `--fatal-warnings` on `2.0.0`.
- Run tests, dartfmt check, and analyzer `--fatal-infos` on the dev SDK.
- Switch from `isInstanceOf` to `TypeMatcher` to fix deprecation warning.
diff --git a/pkgs/stack_trace/.travis.yml b/pkgs/stack_trace/.travis.yml
index 8ddade5..f3c200d 100644
--- a/pkgs/stack_trace/.travis.yml
+++ b/pkgs/stack_trace/.travis.yml
@@ -2,7 +2,7 @@
 
 dart:
   - dev
-  - stable
+  - 2.0.0
 
 dart_task:
   - test: -p vm
@@ -12,9 +12,14 @@
 matrix:
   include:
     # Only validate formatting using the dev release
-    # Formatted with 1.23.0+ which has (good) changes since 1.22.1
     - dart: dev
       dart_task: dartfmt
+    - dart: dev
+      dart_task:
+        dartanalyzer: --fatal-infos --fatal-warnings .
+    - dart: 2.0.0
+      dart_task:
+        dartanalyzer: --fatal-warnings .
 
 # Only building master means that we don't run two builds for each pull request.
 branches:
diff --git a/pkgs/stack_trace/pubspec.yaml b/pkgs/stack_trace/pubspec.yaml
index 070d3e7..3ddf071 100644
--- a/pkgs/stack_trace/pubspec.yaml
+++ b/pkgs/stack_trace/pubspec.yaml
@@ -4,7 +4,7 @@
 homepage: https://github.com/dart-lang/stack_trace
 
 environment:
-  sdk: '>=1.23.0 <3.0.0'
+  sdk: '>=2.0.0 <3.0.0'
 
 dependencies:
   path: ^1.2.0
diff --git a/pkgs/stack_trace/test/chain/chain_test.dart b/pkgs/stack_trace/test/chain/chain_test.dart
index 26b04a1..9de7d53 100644
--- a/pkgs/stack_trace/test/chain/chain_test.dart
+++ b/pkgs/stack_trace/test/chain/chain_test.dart
@@ -44,7 +44,7 @@
         return new Future.error("oh no");
       }, onError: expectAsync2((error, chain) {
         expect(error, equals("oh no"));
-        expect(chain, new isInstanceOf<Chain>());
+        expect(chain, TypeMatcher<Chain>());
       }));
     });
 
@@ -55,7 +55,7 @@
         future.then(expectAsync1((_) {}, count: 0));
       }, onError: expectAsync2((error, chain) {
         expect(error, equals("oh no"));
-        expect(chain, new isInstanceOf<Chain>());
+        expect(chain, TypeMatcher<Chain>());
       }));
     });
 
@@ -80,7 +80,7 @@
           return new Future.error("oh no");
         }, onError: expectAsync2((error, chain) {
           expect(error, equals("oh no"));
-          expect(chain, new isInstanceOf<Chain>());
+          expect(chain, TypeMatcher<Chain>());
         }), when: false);
       });
 
diff --git a/pkgs/stack_trace/test/chain/dart2js_test.dart b/pkgs/stack_trace/test/chain/dart2js_test.dart
index df3d07b..8cceded 100644
--- a/pkgs/stack_trace/test/chain/dart2js_test.dart
+++ b/pkgs/stack_trace/test/chain/dart2js_test.dart
@@ -151,7 +151,7 @@
       }, onError: (error, chain) {
         try {
           expect(error, equals('error'));
-          expect(chain, new isInstanceOf<Chain>());
+          expect(chain, TypeMatcher<Chain>());
           expect(chain.traces, hasLength(2));
           completer.complete();
         } catch (error, stackTrace) {
@@ -171,7 +171,7 @@
     }, onError: (error, chain) {
       try {
         expect(error, equals('error'));
-        expect(chain, new isInstanceOf<Chain>());
+        expect(chain, TypeMatcher<Chain>());
         expect(chain.traces, hasLength(2));
         completer.complete();
       } catch (error, stackTrace) {
diff --git a/pkgs/stack_trace/test/chain/vm_test.dart b/pkgs/stack_trace/test/chain/vm_test.dart
index f84d1d2..4f8aa95 100644
--- a/pkgs/stack_trace/test/chain/vm_test.dart
+++ b/pkgs/stack_trace/test/chain/vm_test.dart
@@ -246,7 +246,7 @@
       }, onError: (error, chain) {
         try {
           expect(error, equals('error'));
-          expect(chain, new isInstanceOf<Chain>());
+          expect(chain, TypeMatcher<Chain>());
           expect(chain.traces[1].frames,
               contains(frameMember(startsWith('inMicrotask'))));
           completer.complete();
@@ -267,7 +267,7 @@
     }, onError: (error, chain) {
       try {
         expect(error, equals('error'));
-        expect(chain, new isInstanceOf<Chain>());
+        expect(chain, TypeMatcher<Chain>());
         expect(chain.traces[1].frames,
             contains(frameMember(startsWith('inMicrotask'))));
         completer.complete();
diff --git a/pkgs/stack_trace/test/frame_test.dart b/pkgs/stack_trace/test/frame_test.dart
index 4e46a55..22e9318 100644
--- a/pkgs/stack_trace/test/frame_test.dart
+++ b/pkgs/stack_trace/test/frame_test.dart
@@ -658,6 +658,6 @@
 
 void expectIsUnparsed(Frame constructor(String text), String text) {
   var frame = constructor(text);
-  expect(frame, new isInstanceOf<UnparsedFrame>());
+  expect(frame, TypeMatcher<UnparsedFrame>());
   expect(frame.toString(), equals(text));
 }