[subset] Use CmapSubtable.isUnicode()/isSymbol()

Fixes https://github.com/behdad/fonttools/issues/111
diff --git a/Lib/fontTools/subset.py b/Lib/fontTools/subset.py
index f50d206..94f1176 100644
--- a/Lib/fontTools/subset.py
+++ b/Lib/fontTools/subset.py
@@ -1696,8 +1696,7 @@
 
 @_add_method(ttLib.getTableClass('cmap'))
 def closure_glyphs(self, s):
-  tables = [t for t in self.tables
-            if t.platformID == 3 and t.platEncID in [1, 10]]
+  tables = [t for t in self.tables if t.isUnicode()]
   for u in s.unicodes_requested:
     found = False
     for table in tables:
@@ -1712,11 +1711,9 @@
 def prune_pre_subset(self, options):
   if not options.legacy_cmap:
     # Drop non-Unicode / non-Symbol cmaps
-    self.tables = [t for t in self.tables
-                   if t.platformID == 3 and t.platEncID in [0, 1, 10]]
+    self.tables = [t for t in self.tables if t.isUnicode() or t.isSymbol()]
   if not options.symbol_cmap:
-    self.tables = [t for t in self.tables
-                   if t.platformID == 3 and t.platEncID in [1, 10]]
+    self.tables = [t for t in self.tables if not t.isSymbol()]
   # TODO(behdad) Only keep one subtable?
   # For now, drop format=0 which can't be subset_glyphs easily?
   self.tables = [t for t in self.tables if t.format != 0]