Assimilated Zipf-Mandelbrot into ndn-consumer

Instead of defining a separate class of ConsumerZipfMandelbrot that inherits ConsumerCbr, make it a configurable mode in Consumer iteself. Thus, all other derived classes (ConsumerWindowAIMD, ConsumerWindowCUBIC, etc.) can issue interests either sequentially or according to Zipf-Mandelbrot law.
Unified when to decrease congestion window

Most window-based congestion control algorithms increase cwnd on every ContentObject but decrease cwnd on every "loss event" rather than every NACK/Timeout. To make sure window decrease happens only once every RTT and unify this behavior across all derived classes, we implement it in ConsumerWindow itself.
Borrowed ns3::ndn::cs::Nocache from upstream
Used Nocache in our test scripts

Instead of setting cache size to 1, use the new Nocache mechanism.
Added ndn-cc-y

Added a new test case with Y-shape topology to evalute our scheme under caching.
Measure hit ratio in ndn-cc-y and some clean-up
Retooled caching test cases

Instead of a Y-shape topology, use two different topologies: a chain and a tree.