Added separate classes for b /f hyperedges/graphs

b/f hyperedge classes check that head/tail sets are appropriate
b/f hypergraph classes check that hyperedge set are of correct type