The EmbeddedXid and XidImpl classes show up on profiler for allocating byte in a local environment.
1. We should be able to remove the branch byte completely as well as its accompanying AtomicInteger and just return an empty byte that is cached (ie. Util.EMPTY_BYTE_ARRAY).
2. We can use the byte that is provided from the create method directly in XidImpl, which would reduce our allocation to just the 1 byte for embedded or byte for remote.
3. We can return the byte directly for getGlobalTransactionId without copying.