[otBase] Unbreak tests

Don't cache getDataLength() result.  Cache in a new __len__ instead.
diff --git a/Lib/fontTools/ttLib/tables/otBase.py b/Lib/fontTools/ttLib/tables/otBase.py
index c05ec5e..edef765 100644
--- a/Lib/fontTools/ttLib/tables/otBase.py
+++ b/Lib/fontTools/ttLib/tables/otBase.py
@@ -241,8 +241,6 @@
 
 	def getDataLength(self):
 		"""Return the length of this table in bytes, without subtables."""
-		if hasattr(self, '_length'):
-			return self._length
 		l = 0
 		for item in self.items:
 			if hasattr(item, "getCountData"):
@@ -251,9 +249,13 @@
 				l += 4 if item.longOffset else 2
 			else:
 				l = l + len(item)
-		self._length = l
 		return l
 
+	def __len__(self):
+		if not hasattr(self, '_length'):
+			self._length = self.getDataLength()
+		return self._length
+
 	def getData(self):
 		"""Assemble the data for this writer/table, without subtables."""
 		items = list(self.items)  # make a shallow copy