Initial work on moving fork support from server to gdb-remote protocol. If fork-events (vfork-events) extension is supported, the server reports them to the client as fork (vfork) stop reason. The client currently replies with a detach packet.
To be honest, I'm not 100% sure about the API. I've tried to come up with some compromise between doing things right and avoiding too much complexity. The fork/vfork-related logic is supported only by the gdb-remote plugin. Currently only fork is implemented, on Linux, and breakpoints are not handled yet.
Kamil noticed that this will also catch vfork-events+. I suppose I'll rewrite this function to iterate over split data as well.