Rename Graph to DiGraph

* From now on, Graph will mean 'Undirected Graph'
Add Undirected Graph implementation

* Define simple, undirected graph struct and functions
* Add unit test for all Graph functions
* TODO: Create a common interface between Graph and DiGraph
Add Travis CI config file
Merge branch 'master' into develop

Conflicts:
	.travis.yml
Merge Graph and DiGraph in the same struct

* Use Directed attribute to determine the nature of the Graph
* Update search algorithms to take Graphs
* Add mandatory weight attribute to Edge
Merge branch 'master' into develop
Export generic 'Search' function

* Provide algorithm type as parameter
* Test both Undirected and Directed Graphs