This adds support for data selection and slicing for face and node-centered fields on WarpX datasets. Fields are now marked with a nodal_flag that describes the location of that variable in the cell:
nodal_flag = [0, 0, 0] means cell centered.
nodal_flag = [0, 0, 1] means the variable lives on the z-face of the cell.
nodal_flag = [1, 1, 0] means the variable is centered in the z-direction but nodal in the other two, i.e. it lives on the four edges that are normal to the z direction.
nodal_flag = [1, 1, 1] means that the variable is fully node-centered, i.e. it lives on the 8 cell vertices.
For data selection, instead of returning one value for every cell selected, multiple values will get returned corresponding to the value of nodal_flag, i.e. if nodal_flag = [1, 1, 0], 4 values will get returned per cell.
Slicing works as expected: for every pixel in the slice, the closest point to the pixel using the true, nodal discretization will be sampled for the image.