Implementation of buffer which contains elements with no indirections within them (== purely value types).
Implementation of buffer version compatible with void[].
Implementation of buffer which contains elements with indirections within them. Such elements can't be implicitly converted between const and mutable and thus API must be conservatively mutable.