Move interval management to PerformanceMonitor instances.

Rather than having performance trackers manage the update interval, the
various performance monitors can provide constructors/setters for
managing intervals.  This also allows for monitors that cannot be
configured by the user.
Update demo for API changes