rustc: Add new graph library, based on code from region_infernece
Port region inference code to use new graph
Construct the graph only when it is needed to report errors.
Add simple control-flow-graph abstraction based on graph, currently unused
Silence various warnings
auto merge of #7688 : nikomatsakis/rust/issue-6298-dataflow-graph, r=graydon

This patch is a step towards #6298. It extracts the graph abstraction from region inference into a library, and then ports the region inference to use it. It also adds a control-flow graph abstraction that will eventually be used by dataflow. The CFG code is not yet used, but I figured better to add it so as to make later rebasing etc easier.