Currently we have a separate PyArrowMemoryPool implemented in src/pyarrrow/common.cc/h. Instead we should use the default memory pool from Arrow-C++ as often as possible.
Furthermore the user should be able to configure which MemoryPool is actually used in the cases where one can select a custom MemoryPool. For ease of use, there should also be a way to switch the default MemoryPool in Python to a user-selected one, e.g. the jemalloc::MemoryPool.