COMPAT/PERF remove arrays from Vector classes (WIP)
alt to #16193
closes #15854 

This has the downside of introducing more manual memory management, but on the plus side removes the interim gil acquisition  from some algos.

cc @mattip - if you could give this a try in PyPy?  Thanks.
