Configure static PulsarByteBufAllocator to handle OOM errors (#4196)

* Configure static PulsarByteBufAllocator to handle OOM errors

* Always specify `pulsar.allocator.exit_on_oom` when starting pulsar services

* Reverted metrics back

* Fixed compression tests

* Explicitely set the underlying allocator to netty default

* Fixed shading
diff --git a/pulsar-client-kafka-compat/pulsar-client-kafka-shaded/pom.xml b/pulsar-client-kafka-compat/pulsar-client-kafka-shaded/pom.xml
index 512b334..0429209 100644
--- a/pulsar-client-kafka-compat/pulsar-client-kafka-shaded/pom.xml
+++ b/pulsar-client-kafka-compat/pulsar-client-kafka-shaded/pom.xml
@@ -70,6 +70,7 @@
                   <include>org.apache.pulsar:pulsar-client-original</include>
                   <include>org.apache.commons:commons-lang3</include>
                   <include>commons-codec:commons-codec</include>
+                  <include>org.apache.bookkeeper:bookkeeper-common-allocator</include>
                   <include>commons-collections:commons-collections</include>
                   <include>org.asynchttpclient:*</include>
                   <include>io.netty:netty-codec-http</include>
@@ -228,6 +229,10 @@
                   <pattern>org.tukaani</pattern>
                   <shadedPattern>org.apache.pulsar.shade.org.tukaani</shadedPattern>
                 </relocation>
+                <relocation>
+                  <pattern>org.apache.bookkeeper</pattern>
+                  <shadedPattern>org.apache.pulsar.shade.org.apache.bookkeeper</shadedPattern>
+                </relocation>
               </relocations>
               <filters>
                 <filter>