Vector field basic functions

This is the first of the three PRs to push in the electrostatics code.
Contains basic functions to deal with vector/scalar fields (curl, gradient, divergence, is_conservative, is_solenoidal, scalar_potential, scalar_potential_difference).