Reapply "Make Comparable generic."

Avoid concurrent modification in dart2js.
Avoid crash in VM by not using self-referential type bound.

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart/pkg/logging@18667 260f80e4-7a28-3924-810f-c04153c831b5
diff --git a/lib/logging.dart b/lib/logging.dart
index 5e0a239..935b3ae 100644
--- a/lib/logging.dart
+++ b/lib/logging.dart
@@ -247,7 +247,7 @@
  * own level, make sure you use a value between those used in [Level.ALL] and
  * [Level.OFF].
  */
-class Level implements Comparable {
+class Level implements Comparable<Level> {
 
   // TODO(sigmund): mark name/value as 'const' when the language supports it.
   final String name;