Robustness and performance monitoring

* New `FrameRateMonitor`.  Constructed with a scene and several optional parameters, and raises a `lowFrameRate` event when the frame rate is below specified criteria.  Raises a `nominalFrameRate` event when the frame rate rises about the threshold again.
* `CesiumWidget.showErrorPanel` now takes a `message` parameter in addition to the title and error.  The message is a string interpreted as HTML, and can be used, for example, to provide a link to more information when something goes wrong.  `Viewer` and `CesiumWidget` now provide more user-friendly error messages when initialization or rendering errors occur.
* `CesiumWidget` now takes two new parameters, `creditContainer` and `creditCssClass`.  `creditContainer` specifies the DOM element or name that will contain the `CreditDisplay`.  If not specified, the `CreditDisplay` is added as a child of the widget itself.  `creditCssClass` specifies the CSS class to apply to the `CreditDisplay` DOM element.  `Viewer` uses this to adjust the position of the credits.  @emackey, would it be better for `Viewer` to override the `cesium-widget-credits` CSS class rather than passing in a new CSS class?
* New `PerformanceWatchdog`.  This is a `Viewer` widget that displays a user-configurable message when it detects, using `FrameRateMonitor`, that the frame rate is low.  
* `viewerPerformanceWatchdogMixin` to add the widget to `Viewer` easily.