add NimbusCloudStorage to support muti nimbus nodes

NimbusCloudStorage is an implementation of INimbusStorage which gives out a solution of nimbus-single-node problem.
Using NimbusCloudStorage we can now start nimbus processes as many as we want on storm clusters just ensure that one machine has only one nimbus process. 

usage: add [nimbus.storage: "backtype.storm.nimbus.NimbusCloudStorage"] to storm/conf/storm.yaml
 
internal keynotes:
NimbusCloudStorage will start a loop thread on init when "storm nimbus" command is executed. 
The loop thread will then recurrently compare the zk-assignments and local dir "nimbus/stormdist" to download codes.
The loop interval in seconds (default 2) can be customerized by add [nimbus.storage.cloud.loop.secs:"10"] to storm/conf/storm.yaml