Dwarf.Types: Use DW_CFA_same_value encoding when possible
Dwarf.Types: Use DW_CFA_same_value encoding when possible

This is a bit smaller than the alternative, DW_CFA_val_expression. Also
a bit of refactoring.

Test Plan: Validate

Reviewers: scpmw, simonmar, austin

Reviewed By: simonmar

Subscribers: thomie

Differential Revision: https://phabricator.haskell.org/D2745

ezyang/ghc,sdiehl/ghc,ezyang/ghc,shlevy/ghc,shlevy/ghc,ezyang/ghc,sdiehl/ghc,shlevy/ghc,sdiehl/ghc,sdiehl/ghc,ezyang/ghc,shlevy/ghc,sdiehl/ghc,sdiehl/ghc,shlevy/ghc,ezyang/ghc,shlevy/ghc,ezyang/ghc,shlevy/ghc,sdiehl/ghc,ezyang/ghc