make Without Copy
makeWithoutCopy uses NoopReleaseProc as a ReleaseProc, therefore memory needs to be cleaned up by caller side (or by underlyingMemoryOwner if provided).
Parameters
underlying Memory Owner
is stored in Data instance to prevent underlying memory getting cleaned by GC in cases when underlyingMemoryOwner doesn't have any other references.