Refactor so that the underlying edge in PDG is a DataDependence type

Add a new class, DataDependence to encapsulate the edges. Also, whenever
possible, not use the primitive String to represent information.

Test cases are still broken at this point but the functionality is
correct.

See #35.
Update tests to work with the new DataDependence edge

Made some tweaks to Wala to store some type references that we use.

See #35.