function buildConfiguration(projectionNames, overlayTypes) {
        var result = new Configuration();
        result._projectionNames = projectionNames;
        result._overlayTypes = overlayTypes;
        return result;
    }
A Backbone.js Model to hold the page's configuration as a set of attributes: date, layer, projection,
orientation, etc. Changes to the configuration fire events which the page's components react to. For
example, configuration.save({projection: "orthographic"}) fires an event which causes the globe to be
re-rendered with an orthographic projection.

All configuration attributes are persisted in a human readable form to the page's hash fragment (and
vice versa). This allows deep linking and back-button navigation.

@returns {Configuration} Model to represent the hash fragment, using the specified set of allowed projections.