Responses to /api JSON requests run asynchronously to allow concurrent HTTP requests.

ConvertTrackByID waits for the track conversion to complete, which was
preventing other requests going through at the same time, making the
GUI feel unresponsive. Each request is now handled asynchronously, with
synchronisation on the ConvertTrackByID process (to prevent multiple
tracks being converted at the same time).