Merge branch 'build_release_sh_fixes'

* build_release_sh_fixes:
  Don't let leiningen override the target path with target/release Recent leiningen (technomancy/leiningen@a1d7b6f3eabe4eb) appends the profile name to the target directory -- if you installed lein before may, you got a pom with build dir = target/; recent leins set it to target/{profile_name}. This expressly fixes it to be just plain 'target'.
  Fixes to build_release.sh script * storm-console-processor was letting clojure-1.2 meet its dependency list, making for two clojure jars in the tarball. Added a dependency to its project.clj * storm-netty had a dependency itself on storm-core, so the storm-core jar was in both _release and _release/lib. removing the dupe jar from lib/ * build_releases should fail if the build_modules script fails. Made build_modules run set -e, and made build_releases fail if it does * maven is putting the storm-* jar files in target/release+provided, not target/provided. Fixed path. * made pretty banners, made paths be properly quoted * bin/ directory files copy with permissions intact. Also now remove build_release.sh and build_modules.sh, since they won't work * rather than remove _release and *.zip, only removes the specific subdirectory and .zip file. If you run with STORM_KEEP_RELEASE=true, it will not delete the release dir at the end of script (only at beginning) * bin/storm tells you how to roll your own release if you try to launch from a git checkout
Merge branch 'childopts_has_gc_logging'

* childopts_has_gc_logging:
  Default worker childopts: GC logging, IPv4, -server; fixes #492 * Enable verbose GC tuning into {storm.home}/logs/gc-worker.log.N, capped at 100k * added a new childopts interpolant, '%STORMHOME%', set to storm.home property at runtime. * put example production childopts in the storm.yaml.example * Added the 'preferIPv4Stack' setting, to make storm not bind to ipv6 interfaces by default
Merge branch 'metrics_disruptor_producer'

* metrics_disruptor_producer:
  Disruptor queue metrics (#613) * Added new metric type, 'StateMetric', to report direct metrics of anything that meets the IStatefulObject interface * Added methods for population, capacity, and read/write head positions to Disruptor Queue; gave it a getState() to make it IStatefulObject * Register the transfer queue and the send and receive queues for spouts and bolts.
Merge branch 'metrics_validation_fix'

* metrics_validation_fix:
  fix topology.metrics.consumer.register validation: Map, not String The topology.metrics.consumer.register is a list of hashes, but its schema was StringsValidator. Added a 'MapsValidator' (list of Map) and fixed the schema.
* metrics_logging_consumer:
  LoggingMetricsConsumer dumps metrics to log file * Added a LoggingMetricsConsumer example of a MetricsConsumer. Use it by adding 'conf.registerMetricsConsumer(LoggingMetricsConsumer.class);' when you construct your topology. * Added a dedicated appender to the example logback/cluster.xml called METRICS.   Its log format omits the class and priority since with the dedicated appender those are redu
toString() methods for key components
Logging is pretty painful when you can't tell what is what. I've added toString methods to core components like the acker, TridentSpoutCoordinator, etc; where there wasn't one before, I also added a string identifier (_id, usually) attribute.
Testrig: added tracing statements at critical places in the code.