Minimum refinement function position

This pull request addresses issue #46 and uses the patches suggested in pull request #146. It enables the minimum refinement level function to use not only the depth, but also cartesian or spherical coordinates to prescribe the minimum level of refinement of a mesh cell. It also adds tests for this cases.

> Good question. I guess one could check if the division gives a finite
> value. Alternatively, something like this (also note that I am not
> computing .norm() again)?
>
> |   if (scoord[0] <= std::numeric_limits<double>::min())
>       scoord[2]=0.0;
>    else
>       scoord[2] = std::acos(position(2)/scoord[0]);
> |

The if here is entirely equivalent to
   if (scoord[0] == 0)
if you ignore the possibility to scoord[0] might be NaN.

I think it's safe to test for zero here. It's never safe to test for 
equality with any other number, but you can test for equality with zero.

Best
  W.

-- 
------------------------------------------------------------------------
Wolfgang Bangerth               email:            bangerth@math.tamu.edu
                                 www: http://www.math.tamu.edu/~bangerth/