Some pretty major modifications to BFS

Add support for directions (x,y,z)
Requires some changes to the vertex class
Add functions for finding crossing clusters

Functionality includes finding crossing clusters in 1,2 and 3
dimensions.

Not extensively tested, but appears to work. (Good enough for a
physicist?)
Test/debug new percolation stuff

Seems to work. Producing some good graphs!
Temporary commit.

In process of commenting/documenting/rationalising some code
Comment and add diamond (grid) lattice

Code is somewhat commented, a bit more sensible in places (though
much room for improvement). The grid-style diamond suggested by
Mercedes has been added.