Remove unused variable

Simplify implementation of `Chart.prototype.mixin` by removing unnecessary explicit handling of selection.
Improve build process

Programatically wrap the concatenated source code in an
immediately-invoked function expression at build time. This allows for
easier code sharing between files, lessening the friction in dispersing
the source across multiple files.
Add sourcemap support
Break API definitions into separate files
Fix whitespace

Now that the source files are programatically wrapped in an
immediately-invoked function expression at build time, the base-line
indentation should be removed.
Honor inherited implementations of Chart#transform

Chart#extend and Chart#mixin are intended to help authors create new
chart definitions from existing constructors. These new definitions may
define their own data transformation logic, but they likely expect the
previously-defined transformations to take place as well (which is why
they have chosen to reuse the "base" chart).
Limit Chart options to a single parameter

Supporting a variable number of chart options needlessly complicates the
internals of d3.chart.
Simplify `Chart#mixin`

In an effort to honor the single responsibility principle, modify
`Chart#mixin` to operate with previously-created Chart instances.
Additionally, require a unique string name for each mixin.
Implement `Chart#demux`

Provide mixin users with a means to split the input data across mixins.
Improve in-line documentation
Rename `Chart#mixin` to `Chart#attach`

The name "mixin" incorrectly implies state sharing, which this API has
been designed to avoid. The name "attachment" more clearly communicates
the intended use: to associate the `draw` function of one chart which
contains another.
Add assertion for lifecycle event names

Because Layers emit a pre-defined set of event names, d3.chart can help
developers prevent mistakes by asserting the name passed to `Layer#on`
and `Layer#off` is part of that set.
Supress "empty" lifecycle events

If a lifecycle selection contains zero elements, do not trigger the
associated lifecycle event handlers.
added jsdoc block to layer-extensions.js d3.selection.prototype.layer
moving Chart.prototype.initialize definition closer to  since it's more immediatly relevant than .
Honor `transform` option at initialization time

Ensure when charts are instantiated with a `transform` function, that
function is properly attached to the chart instance. For example, the
chart instance produced by the following code should contain the
specified `transform` method:

    d3.chart("MyChart", {
      transform: function(d) { return d.attr; }
    });
Release v0.2

Increment version, rebuild distribution files, and update examples.