Squashed commit from shruti-ramesh/new-changes

Adding Functions with transform_iterator support.
Following functions were modified for transform_iterator Changes
1.	transform
2.	reduce
3.	transform_scan
4.	transform_reduce
5.	count
6.	inner_product
7.	reduce_by_key
8.	scatter, scatter_if (Removed unwanted specilizations & it doesn’t support Random & DV combination)
9.	gather, gather_if (Removed unwanted specilizations & it doesn’t support Random & DV combination)

Adding permutation iterator first implementation.
Supports only basic functionality on permutation iterator. No functions are affected by this.

Signed-off-by: Ravishekhar Banger <ravibanger@gmail.com>