Re-implement `TensorBuffer.create(create:withInitializer:)` using new… (#454)
Re-implement `TensorBuffer.create(create:withInitializer:)` using new… (#454)

[`Array.init(unsafeUninitializedCapacity:initializingWith:)`](https://developer.apple.com/documentation/swift/array/3200717-init) was introduced in [SE-0245](https://github.com/apple/swift-evolution/blob/master/proposals/0245-array-uninitialized-initializer.md). This solves a problem in the core tensor API where we allocate an empty array in [`TensorBuffer.init(create:withInitializer:)`](https://github.com/tensorflow/swift-apis/blob/3629ddc49b706df89f89fa3e92e495e6e3f42332/Sources/TensorFlow/Core/ShapedArray.swift#L85) and fill it in using TensorFlow C API (passed in as the `body` argument). Before this new `Array` initializer was available, we had to create a dummy pointer and use that to unsafely "initialize" an `Array` with unsafe data before we can call `body` on its buffer. Now we can replace the use of this dummy pointer with a call to `Array.init(unsafeUninitializedCapacity:initializingWith:)` and with a trailing closure that calls `body`.

Fixes #454.
tensorflow/swift-apis,tensorflow/swift-apis,tensorflow/swift-apis,tensorflow/swift-apis,tensorflow/swift-apis