Encode function signatures properly in DWARF.

The signatures were previously stored as plain string.
The proper way in DWARF is to store them as structured tree of tags.
(for example, DW_TAG_subprogram containing DW_TAG_formal_parameter)

Note that this makes the debug sections smaller since DWARF
signatures are actually more efficient than just plain strings.

Change-Id: I6afbce28340570666d8674d07c0e324aad561dd5
7 files changed