Added Server.Addr() helper to allow querying of the server's bound address

This can be useful in testing scenarios by allowing you to have the system pick
a random port by passing 0 on options.Port, but also give the user a way to
query the server for what port it actually bound to.
Merge pull request #31 from apcera/add-addr-helper

Added Server.Addr() helper to allow querying of the server's bound address
Allow nats to choose a random port when given port -1.

* In order to allow nats to resolve a randomly-chosen port, we want to
  sometimes give net.Listen a port of 0. However, a port of 0 in the
  config resolve to a constant port. In order to avoid behavioral
  changes, we define '-1' to be the default "choose random port"
  number.
* Resolve ports can be retrievd using the server's Addr() method.
PR feedback (nits)
Write back resolved port to options.
Merge pull request #32 from apcera/allow-external-listener

Allow nats to choose a random port when given port -1
Added some 1.3 options.
Reload config option.

This will be useful to be able to turn on and off debug and/or trace flags for logging.
adding ability to configure nats server with multiple user-password pairs
adding tests to test multiple username, password scenarios from client connections