PLAT-3538 - Randomizing market data provider

Provider and snapshot decorators that randomly tick the data
produced by the underlying source.
PLAT-3538 - Typos
PLAT-3538 - Redesign of randomizing provider and snapshot

Snapshot is now an inner class of the provider because they need to
share state. The randomizer needs to be in the provider so it can
publish notifications but needs to know about the data in the snapshot.
PLAT-3538 - Refactor UserMarketDataSnapshot

Converted anonymous data handler classes to inner classes for clarity.
Made some methods on StructuredMarketDataHandler abstract because they
were overridden in every subclass and therefore redundant.
Added Javadoc.
PLAT-3538 - Redesign of randomizing provider and snapshot

Snapshot is now an inner class of the provider because they need to
share state. The randomizer needs to be in the provider so it can
publish notifications but needs to know about the data in the snapshot.
PLAT-3538 - Manual merge of changes from develop
PLAT-3538 - REST support for randomized snapshots