Remove "optimization" re Extension lookups

Historically, Extension lookups were only decompiled upon access,
and decompiled Extension lookups were possibly copied verbatim to
output when compiling.  This discrepancy with all other table types
is confusing and undeed.  The possible time saving is not worth the
loss in possible optimization of table data.  Remove.
diff --git a/Lib/fontTools/ttLib/tables/otBase.py b/Lib/fontTools/ttLib/tables/otBase.py
index 7eadebe..51f7199 100644
--- a/Lib/fontTools/ttLib/tables/otBase.py
+++ b/Lib/fontTools/ttLib/tables/otBase.py
@@ -251,7 +251,7 @@
 						items[i] = packUShort(item.pos - pos)
 					except AssertionError:
 						# provide data to fix overflow problem.
-						# If the overflow is to a lookup, or from a lookup to a subtable, 
+						# If the overflow is to a lookup, or from a lookup to a subtable,
 						# just report the current item.
 						if self.name in [ 'LookupList', 'Lookup']:
 							overflowErrorRecord = self.getOverflowErrorRecord(item)
@@ -578,9 +578,6 @@
 		self.decompile(subReader, self.font)
 		del self.reader, self.font, self.offset
 
-	def preCompile(self):
-		pass # used only by the LookupList class
-
 	def compile(self, writer, font):
 		table = self.preWrite(font)
 
diff --git a/Lib/fontTools/ttLib/tables/otConverters.py b/Lib/fontTools/ttLib/tables/otConverters.py
index 228029e..f9ac01b 100644
--- a/Lib/fontTools/ttLib/tables/otConverters.py
+++ b/Lib/fontTools/ttLib/tables/otConverters.py
@@ -200,7 +200,6 @@
 			subWriter.name = self.name
 			if repeatIndex is not None:
 				subWriter.repeatIndex = repeatIndex
-			value.preCompile()
 			writer.writeSubTable(subWriter)
 			value.compile(subWriter, font)
 
@@ -239,13 +238,7 @@
 			subWriter = writer.getSubWriter()
 			subWriter.name = self.name
 			writer.writeSubTable(subWriter)
-			# If the subtable has been sorted and we can just write the original
-			# data, then do so.
-			if value.compileStatus == 3:
-				data = value.reader.data[value.start:value.end]
-				subWriter.writeData(data)
-			else:
-				value.compile(subWriter, font)
+			value.compile(subWriter, font)
 
 
 class ValueFormat(IntValue):
diff --git a/Lib/fontTools/ttLib/tables/otTables.py b/Lib/fontTools/ttLib/tables/otTables.py
index 2c0c2b5..0cabd75 100644
--- a/Lib/fontTools/ttLib/tables/otTables.py
+++ b/Lib/fontTools/ttLib/tables/otTables.py
@@ -124,55 +124,6 @@
 		glyphs.append(attrs["value"])
 
 
-class LookupList(BaseTable):
-	def preCompile(self):
-		""" This function is used to optimize writing out extension subtables. This is useful
-		when a font has been read in, modified, and we are now writing out a new version. If the
-		the extension subtables have not been touched (proof being that they have not been decompiled)
-		then we can write them out using the original data, and do not have to recompile them. This can save
-		20-30% of the compile time for fonts with large extension tables, such as Japanese Pro fonts."""
-
-		if hasattr(self, 'LookupCount'): #not defined if loading from xml
-			lookupCount = self.LookupCount
-		else:
-			return # The optimization of not recompiling extension lookup subtables is not possible
-					# when reading from XML.
- 
-		liRange = range(lookupCount)
-		extTables = []
-		for li in liRange:
-			lookup = self.Lookup[li]
-			if hasattr(lookup, 'SubTableCount'): #not defined if loading from xml
-				subtableCount = lookup.SubTableCount
-			else:
-				subtableCount = len(lookup.SubTable)
-			siRange = range(subtableCount)
-			for si in siRange:
-				subtable = lookup.SubTable[si]
-				if hasattr(subtable, 'ExtSubTable'):
-					extTable = subtable.ExtSubTable
-					extTables.append([extTable.start, extTable] )
-
-		# Since offsets in one subtable can and do point forward into later
-		# subtables, we can afford to simply copy data only for the last subtables 
-		# which were not decompiled. So we start figuring out the
-		# data segments starting with the last subtTable, and work our way towards
-		# the first subtable, and then quit as soon as we see a subtable that was decompiled.
-		if  extTables:
-			extTables.sort()
-			extTables.reverse()
-			lastTable = extTables[0][1]
-			if lastTable.compileStatus == 1:
-				lastTable.end = len(lastTable.reader.data)
-				lastTable.compileStatus = 3
-				for i in range(1, len(extTables)):
-					extTable = extTables[i][1]
-					if extTable.compileStatus != 1:
-						break
-					extTable.end = lastTable.start
-					extTable.compileStatus = 3
-					lastTable = extTable
-
 def doModulo(value):
 	if value < 0:
 		return value + 65536