Simplify the request API

Instead of having many classes and interfaces for the different parameter
types of request results, we have now one new type, InfRequestResult, which
combines the various signatures of a request result. This allows to keep
only one interface, InfRequest, which provides the "finished" signal itself.
There are four implementations, two on the client and two on the server side.
One is the basic "request" object, and the other is a request object with
progress information for node exploration and user list query.