* [FEAT][BREAK] Line/Area/Dot charts (stacked or not) - selection support.
   * [BREAK] Normalized the interface of *extension point* property functions (doesn't affect action handlers, tooltipFormat, ...)
   * [BREAK] "scatterPanel_" extension points now receive the series pvc.Element, as first argument (used to receive the series index)
   * [BREAK] all other extension points now receive pvc.Datum, as first argument (used to receive: [stacked] the datum value or [non-stacked] an object with category and value properties)
   * [FIX]  When multiple series were drawn but one had less points than another, the one with less points wrongly drew zero points, which along with interpolating lines gave a false picture of the facts
* [FEAT][REFA][BREAK] For categories, pvc.Element#value now contains a JS Date object when the chart has options timeSeries
   * The new pvc.Element#rawValue property contains the raw value, as it comes from the data source.
   * Note that pvc.Datum#elem.series or pvc.Datum#elem.category both return a pvc.Element.
   * Only direct accesses to the #value property will be affected; action handlers, tooltip formats and the like still receive the raw value.
* [FIX][BREAK] Linear axis ticks of categorical charts now inherit the color from pvRule (instead of a fixed black).

* [FIX] Timeseries dimensions no longer parse the string date values multiple times (an operation which is quite slow).
* [FIX] Fixed dangling 'err' variable in pvc.scaleTicks.
* [FIX] Very basic JSON.stringify shim for "poor" enviroments (like server-side printing) (does a #toString...)
* [FIX] Fixed regression bug, dots in stacked line charts where being clipped when placed off the content panel, but still inside the chart area (orthoFixedMin set detection).
* [FIX] Rubber band (selection rectangle) is now disabled during animation
* [FIX] Rubber band (selection rectangle) is now disabled during animation

* [FEAT] Improved extension point handling; it is now possible to intercept (use the user extension plus internal logic) or lock an extension point (prevent its extension).
* [FEAT] The Tipsy behavior now exposes the #tipMark property, which contains the mark currently being "hovered"; this allows to dynamically calculate 'gravity', for example, through a gravity function, supplied in the tipsySettings.
* [FEAT] New Selection detection constructs (pvc.Shape, pvc.Line, pvc.Rect and pvc.Circle)
* [FEAT] HeatGridChart now fills the mark#datum property
* [REFA] HeatGridChart now uses the same selection detection function as do the other categorical charts
* [REFA] pv.Behavior.selector now publishes a pvc.Rect in the property #selectionRect of the mark being selected, instead of polluting the datum object passed to the mousedown handler
* Protovis (transition branch) update:
  * [FIX] Fix to the order of evaluation of the "datum" property.
  * [FEAT] Added onEnd callback for detecting the end of an animation.
* [FEAT] pvc.BasePanel now stores a list with child panels; this allows notifying child panels when render ends.
* [FEAT] pvc.toGrayScale now supports overriding the default transparency
* [FEAT] New utility functions: pvc.newArray, pvc.define, pvc.scope, pvc.hasOwn
* [REFA] Reviewed animation code.
  * [FEAT] The new pvc.BaseChart#_onRenderEnd and pvc.BasePanel#_onRenderEnd allow performing some action when rendering (including animation) is finished
  * [FIX][BREAK] The property pvc.BaseChart#isAnimating now correctly indicates if animation is being performed.
  * Allows for some selection-related "heavy" marks to be visible only after animation.
* [REFA] Centralized creation of tooltip property functions: pvc.BasePanel#_createPropDatumTooltip
* [REFA] Centralized creation of click and double-click properties of marks: pvc.CategoricalAbstractPanel#{_addPropClick, _addPropDoubleClick}
* [FEAT] Updated the testZZZ.html files to reflect the selection feature of line charts (also fixed small things in the examples, such as labels not fitting in the axes)
* Improvements to click and double-click handling on Dot/Line/Area charts
* New utility functions: pvc.arrayAppend, Object.create ECMA5 shim, pvc.mixin
* Utility fucntion pvc.mergeDefaults now reads prototype inherited properties also
* [FEAT] New chart 'margins' options with JSON {all: 20, /* top: left: right, bottom: */ } or CSS-like shorthand syntax (without measures)
* [FIX] Fixed dangling vars in ParallelCoordinates
* [FEAT] Axis titles
* [FIX]  Fixed regression bug in pvc.number (failed to parse a null value as 0)
* [FIX]  Fixed bug in the calculation of discrete orthogonal scales when the y axis is placed on the right
* [BREAK] Any outside access to options.xAxisSize and options.yAxisSize will no longer work as these will no longer, in general, contain the default or final axes sizes
         (the final axis size is now at: pvc.AxisPanel#axisSize and includes space for the axis title pvc.AxisPanel#titleSize)
* [FEAT] Added documentation about the new options and extension points to testZZZ.html files
* [FEAT] Added new example/test case to testBar.html to test the situation: nulls/crosstab format/stacked
* [REFA] New file pvc.text.js
* [REFA] Refactored text measuring code from pvc.AxisPanel and placed it in a new file pvc.text.js
* [REFA] pvc.AxisPanel render code was split in layout code and render code. The reason is to support that default axis sizes may be assumed by the axes themselves and before creating the scales. On the other hand, render must be done after creating the scales. This implied refactoring the code in the two described phases
* [FEAT] Added the ability to measure the height of text
* [FEAT] Added the Golden Ratio constant: pvc.goldenRatio
* [FIX] Heat grid shape selection for 'square' and 'diamond' shapes
* [FIX] Heat grid drawing of diamond shape, did not fit the available cell
* Slightly changed the pvc.define method to allow specifying the base class.
* Changed generatePvcBundle.sh script to read a scripts file list from the new pvcBundleFiles.txt file.
* Added the getTextHeightCGG function reference in pvc.text.getTextHeight, for server-side printing
* namespace support in pvc.define
[FIX] Heat-grid "sizeBy" dimension did not handle negative values correctly.
Added the hook for plugging in a colorscheme (see function pvc.setDefaultColorScheme)
solved syntax error
* [FEAT] JS framework stuff has been moved from the "pvc" namespace to the new "def" namespace, in the new def/def.js file.
Solved blurry font issue when text is rotated
[FEAT] New data engine, with a new internal storage format and several new capabilities.
[FEAT] Small Multiple charts (currently only working/tested on bar charts).
[FEAT] Drag and click selection in non-composite ordinal axis (label detection is not yet finished, and currently only detects the text anchor point).
[FEAT] Introduction of visual roles.
[FIX]  Heat grid fixes to shape size calculation. Also, the minimum size of a shape is now bigger.
[FIX][BREAK]  Heat grid values, placed on each cell, are no longer clipped. This caused huge memory consumption and speed reduction for a not that big number of cells (10000).
[BREAK] Timeseries dimensions values are now a Date object. This affects extension points that receive or access this data (a backward compatibility feature for extension points may still be developed)
[BREAK][WIP] Some chart types are now not working. This is to be fixed (Metrics, Stacked Line and Stacked Area, Data Tree and Waterfall)
[FEAT] HeatGrids with no shapes are now also selectable (actually this was on the previous commit)
[FEAT] Linear axes now also receive the font option (axisLabelFont)
[FIX] [CDE-528] Show values doesn't work on bar charts - values < 1 did not show the 'value label' in bars
[BREAK] HeatGrid shape's minimum area changed from 4px^2 to 12px^2
[REFA] Refactored and moved color scales code, from heat grid chart to a new file "pvc.color.js" and namespace "pvc.color"; updated includes in "pvcTextZZZ.html" files and in pcvBundleFiles.txt
* def: Improved binary search lagorithm; changed def.query#object signature
* Changed the name of pvc.data.Dimensions#range to the less overloaded pvc.data.Dimension#extent
[FEAT][BREAK] Visibility is now per datum. This allows to control visibility when the legend is bound to multiple dimensions. The breaking changes are that charts do not show, for example, (discrete) categories for which no visible series exist. Previously if at least one series, visible or not existed, the categories would show.
[FEAT] Legend now has a 'legendFont' option and thus can calculate the size of the legend when unspecified. It does not *yet* handle the today common "font changing by extension point".
[FEAT][BREAK] Legend now reads data from its assigned role ('legendSource') and can show multiple dimensions (flattened with '~') (second axis series are not tested yet) The breaking change is in the data that binds to mark, thus breaking extensions points that explicitly read that data (instead of just reading this.index for example).
[FIX] Linear scales with no data would show NaN or Infinity. Also time series scale on empty data would throw.
* Stacked Line and Area are back to life (still broken: Metrics, Data Tree and Waterfall)
* Documentation improvements
* def - new query operators, a new Map class
* Dimensions are now more lazy than before. Most internal data structures are only created on first use.
* For the second axis series feature, translators now correctly handle a series dimensions reader that returns additional atoms, besides the series one.
* Ordinal axes now read data from assigned roles, instead of from dimension groups
[FEAT] Tipsy protovis behaviour now supports the specification of a tipsy exclusion group, causing that only one tipsy of each group is visible at a time. Supports multi-charts.
[FIX] Clicking on a chart empty area no longer re-renders the chart when there were no datums selected.
* Complexes' atoms object now can inherit from a prototype atoms object. This supports multicharts, in that Null Datums inherit atoms that are fixed on each small chart's data.
[FEAT] Renamed DimensionType#keyArgs{convert, compare, format} to DimensionType#keyArgs{converter, comparer, formatter}. New arguments were added to allow for automatic initialization of these, namely: rawFormat -> converter and format -> formatter}, both protovis formats' string masks.
[FEAT] New chart option: 'dimensionGroups' serves as prototype for all dimensions of a group, used by readers or defined in 'dimensions'.
[REFA] Refactored pvc.data.GroupingSpec, now less text parsing and a couple more classes.
[FEAT] New chart methods 'clearSelections' and 'updateSelections' allow (i) clearing selection and, (i) and (ii) forcing chart re-rendering due to programmatic selection changes
[BREAK][FIX] Vertical charts with timeseries now correctly apply the defined axis offset. This may cause {Dot,Line,Area}Charts to show an axis margin that previously did not show.
[BREAK] Options orthoFixedMin and orthoFixedMax are no longer automatically set depending on the options stacked and percentNormalized. This helps in determining the user's intent and decoupling the several features.
[FEAT] HeatGrid now obtains data from visual roles 'series', 'category', 'value' and 'value2'.
[FIX]  Fixed recent regression in HeatGrid's shape borders code.
[FIX][REFA][FEAT] Dot/Line/Area charts were rewritten.
[FIX] Fixed NormalizedBar in multicharts - percentages were not being correctly recalculated on re-render.
* New pvcTestLineFull.html showing several variants of Dot/Line/Area charts
* Improved lazy loading of dimensions, deferring more initializations
* Grouping operation modifications to allow better integration with the "where" operation.
[WIP] Moved some datasets from file q01-01.js into two new other files: heat-grid-mega.js and steel-wheels.js to alleviate the size of the former file.
[FEAT] Tipsy now supports lazy tooltip evaluation, when supplied with a tooltip function instead of a string.
[FEAT] Tooltips: Lazy, Html by default, Show dimensions names besides values, Common implementation to most charts.
[BREAK] Old tooltip default format function is now available at 'chart.options.v1StyleTooltipFormat', for backward compatibility support, and not anymore in chart.options.
[FEAT] pvc.data.Atom#toString now returns the atom's label to add in backward's compatibility
[WIP]  Compatibility methods: pvc.data.Data#{_getValuesForSeriesIndex, getCategoriesMaxSumOfVisibleSeries, getVisibleSeriesAbsoluteMax, getVisibleSeriesAbsoluteMin}, are no longer needed.
[WIP]  Categorical chart scale calculation methods no longer depend on layout issues!
[FEAT] Visual roles now define a chart's cisual capacities and corresponding data requirements. They get bound to / are played by pvc.data.DimensionType.
[FEAT] Visual roles can be defined as representing measures. This allows filtering datums on translation that have all dimensions bound to measure roles equal to null.
[FEAT] Dimensions can have a label (to show as a business name, in tooltips, for example)
[FEAT] New pvc.data.Dimension methods: sum, percent and percentOverParent help in calculating percentage values for Pie and Stacked charts
[FEAT] pvc.debug now is a number (0: none, 1: error, 2: warning, 3: info). This allows for better control of what is logged. Also several pvc.log functions that had performance-heavy arguments, logged or not, where wrapped in appropriate pvc.debug checks.
[FIX] Fixed bug in lines & areas selection code
[WIP] Added basic selection detection to pv.Wedge mark to support PieChart
[REFA] Moved selection and clicks code from pvc.CategoricalAbstractPanel to pvc.BasePanel (still there is redundant related code in AxisPanel)
[FEAT][BREAK] Panel Layout changes!
   * New _calcLayout method allows performing layout *before* creating protovis marks
   * New pvc.GridDockingPanel to support axis and content layout of pvc.CategoricalAbstract
   * New pvc.MultiChartPanel to support the (currently) flow-like layout of small multiple charts
   * [BREAK] pvc.BasePanel constructor now receives also the (immutable) parent panel, if any.
   * This change releases scales calculation code from performing layout calculations...
[FEAT] New pvc.visual.Context class is the context class that will be supplied as JS-context object to extension point functions, action handler functions, ...and contains all information relevant for extension purposes
[FEAT] New support for examples construction in pvcTestZZZ.html files added to pcvDocUtils.js,css
[FEAT][BREAK] Selection and MultiChart in PieCharts. Broke arguments passed to extension point functions.
[WIP] Improved Small Multiple Charts examples in pvcTestSmallMultipleCharts.html
[FEAT] Animation now supported in multi-charts