added utilities with cartesian and spherical coordinate conversion

Created a new file and namespace aspect/utilities for utility functions that
are not related to particular plugins or the simulator class. Currently there
are two functions implemented, which are conversions between cartesian and
spherical coordinates.

This is a combination of 11 commits by @gassmoeller:
Add utilities.cc and .h
Remove surface_coordinates from harmonic perturbation.
Remove spherical_coordinates function from gplates
Remove spherical_coordinates function from S40RTSPerturbation
Remove unnecessary template argument.
Rename namespace and improve documentation
Simplified calculation and fixed some special cases like dim==2
Added test that explicitly tests the coordinate transformation.
Move implementation of utility functions in header to be inlineable.
Secure check. Remove instantiations. Initialize.
Best practice for dimensionality independence.
fix logic in cartesian_coordinates