This patch rewrites gdb_bfd_error_handler to use 'bfd_print_error' to
generate the text of the warning, and then emits it using 'warning'.
The current code in the tree is a bit wrong because it may do the
wrong thing when BFD uses ones of its printf extensions.
This also adds locking to increment_bfd_error_count. This is
important now that some BFD operations can be done on worker threads.
This approach makes it simpler for worker threads to intercept any
messages.