This adds an optional bitmap allocator to the PayloadBuffer class. A bitmap allocator uses a set of fixed size blocks to hold allocations that are less than or equal to the configured size. It has a bitmask specifying which blocks are allocated. It's about twice the speed of a simple free-list allocator but at the expense of using more memory in the buffer. That's fine if you are creating messages in shared memory where the message size isn't important, but could be a hinderance if you want smaller messages that go over a network.