Big merge from experimental to bleeding edge.

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart/pkg/path@16687 260f80e4-7a28-3924-810f-c04153c831b5
diff --git a/lib/path.dart b/lib/path.dart
index 99eee7b..cc882f4 100644
--- a/lib/path.dart
+++ b/lib/path.dart
@@ -356,7 +356,7 @@
   List<String> split(String path) {
     var parsed = _parse(path);
     // Filter out empty parts that exist due to multiple separators in a row.
-    parsed.parts = parsed.parts.filter((part) => part != '');
+    parsed.parts = parsed.parts.where((part) => !part.isEmpty).toList();
     if (parsed.root != null) parsed.parts.insertRange(0, 1, parsed.root);
     return parsed.parts;
   }