Made TriaAccessor aware of Manifold

This is the initial work to make `TriaAccessor` more aware of Manifold. 

This allows (and future PR will implement this) to switch internal calls to `get_manifold` to syntax like 
~~~C++
cell->center(true);
line->center(true):
line->point(p);
~~~
 instead of the fairly redundant versions
~~~C++
cell->get_manifold().get_new_point_on_cell(cell);
line->get_manifold().get_new_point_on_line(line);

vector<Point<2> > ps(2); ps[0] = line->vertex(0); ps[1] = line->vertex(1);
vector<double> ws(2, .5);
Quadrature<2> quadrature(ws, ps);
line->get_manifold().get_new_point(quadrature);
~~~
I find the function name confusing. How about `intermediate_point`?

I think what is missing from the documentation is that the argument denotes not just coordinate, but in fact coordinates of a point in the *reference cell*, given in reference coordinates. In other words, the argument provides a weighting between the different vertices.