Create getter and setter methods for more chart properties

Continue the refactor towards the style discussed in
http://bost.ocks.org/mike/chart/.

Removed the jQuery.extend call that sets properties on Gneiss as all
the properties are now accessible through getters/setters.
Trim leading and trailing whitespace from input data

Trim leading and trailing tabs and spaces on rows as well as leading
and trailing spaces on internal elements. Internal tabs are still not
valid input and headers or date entries with spaces in them are still
valid input.

Added tests to verify the behavior of ChartBuilder.getNewData().
Merge branch 'trim' into refactor
Merge branch 'fixfirefox2' into refactor
Create getter and setter methods for more chart properties

Continue the refactor towards the style discussed in
http://bost.ocks.org/mike/chart/.

Created source, credit, title accessors and re-factored setXScales()
and calculateColumnWidths() to be more performant and readable.
Cleaned up setYScales

Fixed numerous bugs in how the left and right y-axii interact,
including how ChartBuilder determines the left y-axis is unused, which
was flawed if more than one series was charted on the left y-axis.
Layout now works better across the board, though there's an outstanding
issue with the right y-axis base value documented at
https://github.com/Quartz/Chartbuilder/issues/87.

The first half of the method is now simpler, more readable, and
well-documented.

Fixed some other variable caching issues as I found them.
More setYScales cleanup
Add tests for setYScales functionality
Fix deep copy usages

$.extend() requires a first argument of 'true' to deep copy
Fix barchart series displaying with incorrect padding

Because setYScales() is called multiple times, the barchart-specific
change to axis.domain was reused in a later call when we checked to see
if axis.domain was already computed and updated the existing
scale.domain instead of recreating a new scale.domain. Because we
always create a new scale.domain now, we need to ensure that the
axis.domain is correct before creating the scale.domain. Moving the
change forward resolved the display padding issue.

Also fixes up some tests.
Merge branch 'refactor'