Refactored attrs function to return nil if no attributes are found in all cases
Merge branch 'master' of github.com:aysylu/loom
Adding DAG ancestry and tests.

The DAG ancestry is a fast bitmap ancestry cache. It has some up-front
cost to contstruct but provides very fast ancestry lookups.

The test code for this uses test.check which was brought in as a :dev
dependency. Also, to support different scales of testing, I added
:test-selectors to the Leiningen project.clj.
Function for bytes for rendered graph PNG.
Merge pull request #19 from Engelberg/master

Enhanced protocols in preparation for multigraphs.
Using the new test selectors, have Travis CI run :all tests.
Refactored topsort_component() to avoid duplicate stacking of seen nodes.

Currently the topsort_component pushes all successors to the stack
irrespective of it that node is already on the stack. This leads to
node having multiple incoming edges to be on stack only to be popped
later. The change also align this method with post-traverse since both
methods almost perform the same function, except for the check on
'explored' nodes to detect cycles.
Updated README with new slides+video; link to mailing list.
Merge pull request #18 from abrooks/master

Adding DAG ancestry and tests.
Merge pull request #22 from JonyEpsilon/bytes-render

Function for bytes for rendered graph PNG.
Add multiple-path bi-directional BFS algorithm

The bf-paths generic algorithm returns all shortest paths from start to
finish.
Ignore all build artifacts
Merge pull request #14 from jgdavey/ignore-build-artifacts

Ignore all build artifacts
Merge pull request #15 from jgdavey/bidirectional-bfs-mulitple

Add multiple-path bi-directional BFS algorithm
Add edge case tests
speed up traverse-all, scc
Merge pull request #21 from gdevanla/refactor_topsort_component

Refactored topsort_component() to avoid duplicate stacking of seen nodes...
updated TODO list
merged conflicts
Merge pull request #23 from gdevanla/scc_traverse_all_performance

speed up traverse-all, scc