Minor code cleanups
Build: switch on -Wextra, get rid of most of the warnings
There are several unresolved -Wmissing-field-initializers on olderversions of GCC than 5.1, all of them false positive.
Fixes some bugs and uses generic hash implementation.
BFD work in progress.
Now it compiles and mostly works.
Initial BFD commit, work in progress.