feature: indexing array using array

* CPU backend implementation
* placeholders for CUDA & OpenCL backends