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
Added class for B-HyperTree and visit function

Implemented a class which checks that a given hypergraph is a hypertree
on construction.
Implemented the function from the "Flows on hypergraphs" paper VISIT for
hypertrees.
Merge remote-tracking branch 'origin/master' into matt-mohammed
Added sample dirbhypertree to data
Fixed identation and syntax for bhypergraph class
Fixed more indentation issues
Changed delimeters for byhypertree to tabs
Added read method for DirBHyperTree
Initial tests for bhypertree
Fixed some bugs with the visit algorithm
More fixes for hypertree visit, input data, hyperedge equality
wrote spanning hypertree function from paper, examle from paper isn't unique so tests fail for the time being
Small bug fixes in spanning hypertree function
Added test for get spanning hypertree.
Change MAX_VAL to sys.maxsize
Added a check for cycles in b-hypertree init
Fixed tons of bugs in cycle-checking algorithm, added tests
Missed a couple things on the last commit
Halfway through flow algorithm implementation
Merge branch 'matt-mohammed' of https://github.com/tmmurali/hypergraph into matt-mohammed