DSGraph Fixes

A note to people working on DSGraph related projects:

I just checked in a bunch of fixes and minor changes that affect how the
DSGraphs are built, and some minor representational fixes. With these
changes, the DSGraph interface is pretty much frozen from my end.

There are two big caveats though:

1. Bugs still exist. There are a couple of asserts that may be triggered
   for unimplemented features, but there are also places in the code
   (flagged with FIXME's) that don't properly merge stuff. These
   deficiencies will be fixed in the next couple of days. If an assert is
   really annoying you, feel free to delete it. The graph will be
   incorrect, but you can still use it for testing.

   With only a one exception, the testcases in the
   test/Regression/Transforms/DSAnalysis directory are all correct.

2. Misha is ripping apart the representation to enable the Anderson's
   pointer analysis to be implementable in the DSGraph representation.
   Because of this, some of the interfaces may change slightly.

   I doubt that anyone working on the Anderson's project will mind this,
   and it will be good for us to have a unified representation for the
   projects. Vikram can tell you whether or not you're actually
   _required_ to use the representation, but I do know that you are
   allowed to use it if you so desire.

One of the high priority items on my TODO list is to start writing the
paper that describes the DSGraph representation, construction, and
applications. Because of this, there will be some better high-level
information about the DSGraph concepts available soon.

Until then, if you are itching to get started on your projects, I would
recommend digging into the header files (which are liberally commented)
and trying to get graphs viewable with dot. Both of these will help you
come to understand the representation, and you'll have to do this sooner
or later anyway. :slight_smile:

Happy trails,