This speeds maximal_cliques by an order of magnitude on a 200 node Erdos...

... Renyi

graph with p=0.1.  This probably should not be committed, but should be used to
motivate the improvement of set.jl.

This is an alternative to PR #93 for resolving issue #54.  It has the advantage of not requiring special properties of the graph.  It has the disadvantage of becoming relatively inefficient if the implementation of Set gets improved.

There are fundamentally 3 changes
1) The Sets and Dict are given types (this I think is standard Julia practice)
2) intersect is changed to only add elements that are in the intersection
3) The infrastructure for the sets is reused.  The old code was tossing and rebuilding sets like there was no tomorrow.