Support derivatives of vectors
The cell derivative/gradient functions were all designed with scalars in mind. Although the field type is templated and you could pass in a vector type for the field, many of these classes would perform the computation incorrectly. These changes specifically support derivatives of vector types.