Replace panics with error returns

so that malformed input doesn't make protodump panic
Account for (void) argument lists
Handle DW_AT_class_type

the same way as DW_AT_structure_type
Handle enumerations that don't have DW_AT_encoding

e.g. rust's std::cmp::Ordering

... and fetch the encoding from the underlying type, if it's a base

Handling underlying types that are not base type is TODO (?), yet to be
found in the wild.
Add doc comments
Better type handling

- Parse types into proper structs
- Parse type definitions
- Handle anonymous functions
- Handle subroutine parameters
Make prototypes names bold

Instead of making the types bold, make the prototype names bold.
This makes it easier to tell the names apart.
Don't show type aliases
Properly iterate through debug entries

1/ Filter entries that have the DW_AT_declaration attribute set to true
   (this attribute means they are incomplete, e.g. parameter names are
2/ Use next_dfs+next_sibling instead of next_entry, mostly for a
Allow parameters to have no name
diff mode: don't print any error message
man page: add an entry for the diff mode
Merge goblin and object usage

since both do the same thing
Update README.md and add a man page
Do not group by files by default
Add options to show local, global and imported symbols