Pipeline control cleanup/Layer model improvements

The pipeline control widget now stores its state in the layer model, where most of the complicated logic has been moved. The layer model stores additional information internally to cache things like color and visibility.  

One change from previous behavior is that (by default) all layers will be hidden.  The default behavior can be changed by providing a query string as the first argument to the constructor.