return Result instead of Option in many functions, propagating error info.
print errors that occur during reading
do not treat a missing DW_AT_upper_bound attribute in an array type as an error.
This attribute is optional in the DWARF spec. If the upper bound is not given
explicitly it is calculated based on the array size and element stride
handle the case where one debug info entry includes another using a
DW_AT_abstract_origin attribute
Fixes issue #1