PointGraph (PointUndirectedGraph, PointDirectedGraph, PointTree)

This PR changes the way we define a `PointGraph`. The old `PointGraph` class (mainly used in landmarks) is now replaced by `PointUndirectedGraph`. There are also `PointDirectedGraph` and `PointTree`. This way of defining the `PointGraph` family classes is now consistent with the way the `Graph` family is defined (`UndirectedGraph`, `DirectedGraph`, `Tree`).

Finally, this PR adds a function that checks whether the `adjacency_array` provided in the `Tree` class actually represents a tree, otherwise an error is raised.
don't use `..` imports, only use relative imports within packages - so if I want to import from a file in this same folder
```python
from .foo import bar
```
 is fine. Here prefer:

```python
from menpo.shape import TriMesh, PointUndirectedGraph
```