Performance improvements

- Values carry their types around.  This allows us to avoid going
  through dynamic_cast, which is needlessly flexible for our purposes.
  This reclaims some of the performance lost after value was properly
  abstracted.

- Avoid copies of Dwarf_Die and Dwarf_Attribute whenever possible.
  This gives about 10% of performance back per my test case.