bfd: rewrite load_lmap in Go to avoid threading/logic bug.

load_lmap takes the PID and then reads from the inferior to
identify/figure out the link_map.  However, this really can't be
correct, because ptrace() really just allows parents to read from
inferiors.  Since the only thread that is actually/officially the
parent is the thread that is running our github.com/tfogal/ptrace
package, accessing the inferior's memory *must* go through that
package.

So I rewrote the important parts of load_lmap in Go such that it
uses the ptrace API to read from the inferior, thus serializing
everything through the thread that is doing the reading.