Abstract data dereferencing

In order to better facilitate reusability, provide an interface for
working with chart data. With it, chart consumers are able to define the
"shape" of their data. Allow consumers to explicitly opt out of this
behavior for situations that require runtime optimization (i.e. large
datasets, frequently-updating charts, or low-powered devices).
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.
Break API definitions into separate files
Fix whitespace

Now that the source files are programatically wrapped in an
immediately-invoked function expression, the base-line indentation
should be removed.
Add sourcemap support
Fix bug in dataAttrs inheritance logic

Account for charts that extend other charts without declaring additional
data attributes.
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).