RankableObjectWithFields implements Serializable to fix NotSerializableException errors
Explain how to run unit tests with Maven
README: Use 120 chars max per line
Reformat README
Update README
Restructure README and add more docs
Update main heading
Add table of contents
Update Getting Started section
PR-3: Add step-by-step instructions for the curious but unsavvy

Most of the original pull request (dated two years ago) was added to the
README.

See https://github.com/nathanmarz/storm-starter/pull/3 for the original
pull request.
AbstractRankerBolt: use log level DEBUG instead INFO so that the bolt is more silent on the logging side
RollingCountBolt: use log level DEBUG to tell that a tick tuple was received
Rankings: make updateWith() thread-safe

This fixes a ConcurrentModificationException that could be triggered when
using log4j to log Rankings#toString() from within a bolt's execute()
method.  Apparently a separate thread is used by log4j to perform the
logging, whose execution path could interweave with the bolt's own
thread.

Even though this is not necessarily a deficiency of the Rankings class
(which does not claim to be thread-safe), we still decided to make
Rankings#updateWith() thread-safe so that users do not run into errors
when using log4j & Co. for logging purposes.  In other words, we decided
to add this fix for the convenience of our users.
project.clj: add test dependencies of the Java code in storm-starter
Reformat Java code to use 2 instead of 4 spaces (to match Clojure style)
Rankings: add pruneZeroCounts() method
Rankings: use private helper method to implement getRankings() for cleaner code
project.clj: add explicit :test-paths setting so that Java IDE's can
properly match Java package names and directory names for test classes
TotalRankingsBolt: prune zero count rankings after each emit
RankableObjectWithFields: update Java docs