Use atomic.Int32 for Array.pinned and a sync.Mutex for the global
arrays slice so MLX arrays can be safely created and managed from
multiple goroutines. Convert Array value receivers to pointer
receivers and struct fields from Array to *Array to avoid copying
the atomic.