Expose exported rending functions through the .renderer property of the given constructor.

So other rendering functions can call it like:

```
    var render = function (data, layer, options) {
        var renderer = this.column.renderer;
        var defaults = renderer.defaults;

        options = _.merge(options || {}, defaults, { column: { stacked: true } });

        return renderer.call(this, data, layer, options);
    };

    render.defaults = {
        stackedColumn: {
            stacked: true
        }
    };

    Contour.export('stackedColumn', render);
```

Fixed #193
added function to ensure a set of defaults is included into an options object

This allows a render function that is reusing other visualization rendering function to make sure that the dependent defaults are being included correctly.

Fixes #193
Allow to specify the name of the visualization for ensureOptions and add the options to the main options object
Merge branch 'master' into exportable2
in safari, open the new tab before the asynchronous callbacks to avoid getting popup-blocked
change `parentElement` to `parentNode` to support IE9-11
safari supports setting the location of the newly-created tab to the object url
more detailed comment about `open()`
correct comments about IE9 support