Support all Allocate flags in UnknownArrayHandle
UnknownArrayHandle
supported an Allocate
method to change
the size of the underlying array without knowing its type.
However, it did not give all the features of ArrayHandle
's
allocate. Namely, you could not specify that the data should
be preserved and you could not provide a Token
object. This
change adds these (optional) parameters.