[dart2js] Ensure all top/raw type predicates go through DartTypes.

Conceptually, this makes sense because a type is not intrinsically top
or bottom or raw, but only in the context of a type system. This also
makes these predicates much more maintainable and puts them in a form
identical to the one at the RTI level.

Change-Id: I83154a82cef6cbaa9c4d0f27cb95f01473c1e015
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/149049
Commit-Queue: Mayank Patke <fishythefish@google.com>
Reviewed-by: Stephen Adams <sra@google.com>

https://dart.googlesource.com/sdk/+/bbb8923ebb1a077296d6fe1fcad14e497e6cd963
diff --git a/commits.json b/commits.json
index 5c18f4e..7f760b7 100644
--- a/commits.json
+++ b/commits.json
@@ -1,5 +1,5 @@
 {
   "external/github.com/flutter/engine":"3e51c6fc9e2eb038bf5df6f392470160593a6594",
   "external/github.com/flutter/flutter":"af9b6a6efa83a3aec34577c6a4d65f833cc8282c",
-  "sdk":"d1546cac8768101d3c6e6e15d1d56c47020fe0fe"
+  "sdk":"bbb8923ebb1a077296d6fe1fcad14e497e6cd963"
 }
\ No newline at end of file