Make functor more efficient by reusing bindings.
Give extent better function names.
Update uniform grid to use the new extent calls
Permutation container make call have the correct name.
Make FindBindings and Bindings easier to use throughout the code.

Now you pass a bindings type to FindBindings instead of the bindings
invocation
Add a common location for all grid tags
Topology concepts now expose their cell and grid tags.
Control topology Args must expose cont objects for optimal scheduling

We needed them to return the control side elements so we can look
at the information like number of cells so we can perform the best
scheduling algorithm
Implement a flat and IJK based index for iteration.

This will allow more efficient iteration of full uniform grids.
Updating Execution Args and Functor to handle all index classes.
We now have the ability to create a cell based scheduler.

We use a special scheduler when we see we are doing a worklet that
is based on cells instead of a general field. This will allow
us to have a far more efficient uniform grid for_each algorithm
Add in Cell aware scheduling algorithm

We currently need to create device algorithm that are cell type aware
Update deviceAdapter to handle cell based iteration for schedule
Allow array handle to work with vectors with custom allocators.
Add unit test for IJK index
Update TopologyCell to handle new index types.
Remove FlatIndex and update Topology uniform implementation.
Reduce false sharing in the tbb device adapter.
Revert functor performance changes as it breaks OpenMP.
Simplify scheduling based on i,j,k indices