[FIXED JENKINS-13546]

Bringing this to the parity with ParameterizedJobMixIn.doBuild()

Instead of returning JSON, it returns "201 Created" and responds with the location of the queue item, through which the caller can track how it passes through the queue and eventually gets built/cancelled.

The approach in pull request #750 that relies on
AbstractProject.getQueueItem() is inherently unreliable, because
item can be immediately built before the JSON is rendered, or it might
corresponds to other queued items if the build supports concurrent
builds, etc.