Repurposed apiServer.js to start non-competing mock API servers.

* Generalized apiServer.js to not be tied to ParsoidService.js

  - This now starts servers on randomized ports as long as the
    server restart fails.

  - Use recursive timeout to make sure that the server is around
    before passing it back to a callback. This is currently hacky
    and may occasionally fail. A real solution would be to implement
    an 'alive' endpoint or something that lets apiServer.js know
    that the server is up and running successfully and use that to
    pass back the server.

* Tested with 7 concurrent full parserTest runs and they all
  completed without failures.

Change-Id: I49acd510c542683911cc27f9a93bb5135e098020