PERF: fix SparseArray._simple_new object initialization
Apart from this being more idiomatic, it also avoids creating a SparseArray through the normal machinery (including validation of the input etc) for the empty list.

With this PR:
```
In [1]: data = np.array([1, 2, 3], dtype=float)  

In [2]: index = pd.core.arrays.sparse.IntIndex(5, np.array([0, 2, 4]))  

In [3]: dtype = pd.SparseDtype("float64", 0)      

In [4]: pd.arrays.SparseArray._simple_new(data, index, dtype)  
Out[4]: 
[1.0, 0, 2.0, 0, 3.0]
Fill: 0
IntIndex
Indices: array([0, 2, 4], dtype=int32)

In [5]: %timeit pd.arrays.SparseArray._simple_new(data, index, dtype)    
381 ns ± 4.83 ns per loop (mean ± std. dev. of 7 runs, 1000000 loops each)
```

while on released version this gives around 50µs (100x slower)

Noticed while investigating https://github.com/pandas-dev/pandas/issues/32196
Thanks @jorisvandenbossche! Quick benchmark result below when running `pd.DataFrame.sparse.from_spmatrix` on a random sparse CSR array of given `n_samples, n_features` with a `density=0.01`,
```
label                 master (s)    PR (s)
n_samples n_features                   
100       100000         14.5374   10.1247
10000     10000           1.5599    1.1037
100000    100             0.0180    0.0134
```

so overall this makes that method around 30% faster. @rth thanks for the timings! Yes, it was indeed a large part of the original slow `from_spmatrix`, the snippet in the issue does most of the rest so we have asvs for this? also add a whats new note Note added in https://github.com/pandas-dev/pandas/pull/32825 that should work for both PRs I think.