Allow nats to choose a random port when given port -1

* In testing scenarios where multiple packages each configure their
  own nats server, port collisions could happen. Without changing the
  behavior of gnatsd, this allows us to configure a listener
  externally with an available port, or generate a default listener
  in the main routine during normal server operation.
* Cowritten with Oleg.

@derekcollison @krobertson