Rearranged and added comments to object.h, to clarify many things
that have taken me "too long" to reverse-engineer over the years.
Vastly reduced the nesting level and redundancy of #ifdef-ery.
Took a light stab at repairing comments that are no longer true.

sys_gettotalrefcount():  Changed to enable under Py_REF_DEBUG.
It was enabled under Py_TRACE_REFS, which was much heavier than
necessary.  sys.gettotalrefcount() is now available in a
Py_REF_DEBUG-only build.
diff --git a/Objects/object.c b/Objects/object.c
index 4cc9f6a..5c53908 100644
--- a/Objects/object.c
+++ b/Objects/object.c
@@ -1858,9 +1858,7 @@
 	op->_ob_prev = &refchain;
 	refchain._ob_next->_ob_prev = op;
 	refchain._ob_next = op;
-#ifdef COUNT_ALLOCS
-	inc_count(op->ob_type);
-#endif
+	_PyMAYBE_BUMP_COUNT(op);
 }
 
 void
@@ -1885,9 +1883,7 @@
 	op->_ob_next->_ob_prev = op->_ob_prev;
 	op->_ob_prev->_ob_next = op->_ob_next;
 	op->_ob_next = op->_ob_prev = NULL;
-#ifdef COUNT_ALLOCS
-	op->ob_type->tp_frees++;
-#endif
+	_PyMAYBE_BUMP_FREECOUNT(op);
 }
 
 void