STORM-253: Allow storm worker to use dynamic port instead of pre-configed. Add a ne...

PR for [STORM-253](https://issues.apache.org/jira/browse/STORM-253)

Allow supervisor to decide worker dynamiclly instead of pre-configured in configure file. This is especially useful in a shared cluster environment.

Changes:
1. Add a new config "supervisor.slots" to set the number of workers per supervisor.
2. Add class ServerSocketFactory to reserve the port for worker.