Make sure ApiResult is ready before using it

In core the ApiResult is not actually ready to
use until just before execute() is called.

For this reason we can no construct the resultBuilder
in the constructor but instead use method which is
in turn called from within execute()

Bug: 57531

Change-Id: Iec91a8b471738f0958d9e1432fcb9bbf228cf096
(cherry picked from commit cd23fc9ddabd71efb0123a8357749971836f0a4c)
Merge "Make sure ApiResult is ready before using it" into mw1.23-wmf5