Optimizations for bytes reallocation.
This uses up to 12.5% overallocation, not entirely unlike list_resize().
Could probably use more tweaks for odd allocation patterns, TBD.
Also add __alloc__() method which returns the actually allocated size.
PS. I'm now convinced that we need something like "".join(); later.
diff --git a/Include/bytesobject.h b/Include/bytesobject.h
index 72ca076..849078d 100644
--- a/Include/bytesobject.h
+++ b/Include/bytesobject.h
@@ -21,6 +21,7 @@
/* Object layout */
typedef struct {
PyObject_VAR_HEAD
+ Py_ssize_t ob_alloc; /* How many bytes allocated */
char *ob_bytes;
} PyBytesObject;