BUG-1813: rework the interface to allow multiple implementations

This introduces two largely independent implementations. Unfortunately
we cannot make DurationStatsTracker abstract, simply because users are
relying on the implicit empty constructor. We create
DurationStatisticsTracker to take that role and introduce two distinct
static factory methods to create a particular instance.

Change-Id: I0e4c6688e0d21066ae857647ba642b65073e8543
Signed-off-by: Robert Varga <rovarga@cisco.com>
Merge "BUG-1813: rework the interface to allow multiple implementations"