Issue #13159: Replace FileIO's quadratic-time buffer growth algorithm with a linear-time one.

Also fix the builtin file class and the bz2 module, which used the same algorithm.
diff --git a/Misc/NEWS b/Misc/NEWS
index d27ce30..03c4569 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -229,6 +229,9 @@
 Extension Modules
 -----------------
 
+- Issue #13159: FileIO, BZ2File, and the built-in file class now use a
+  linear-time buffer growth strategy instead of a quadratic one.
+
 - Issue #13070: Fix a crash when a TextIOWrapper caught in a reference cycle
   would be finalized after the reference to its underlying BufferedRWPair's
   writer got cleared by the GC.