fix(scroll): Update scroll data when rows are added

This fix an issue visible when loading data in a deffered function.

Columns labels where hidden in this case, because container height/left was
not updated when rows are added.

Close #186
perf(scroll): Add missing debounce on scroll

This enhance performance when scrolling the gantt.
refactor(columns): Use momentjs for column handling

This is a big refactor in column handling using momentJS features.

view-scale now supports any of momentJS unit, like year, quarter and minute.

headers-* options have been dropped, in favor of headers and headersFormats (see README).

This drops support of everything related to working hours, weekends and column-sub-scale. Those options will be replaced by #126 and #123.

Close #79
feat(calendar): Add calendar factory

This add the calendar factory, to support configuration of timeFrame, dateFrame and timeFrameMapping.

This is the primary step for "#126 Global definition of non working periods", and implements draft from gist https://gist.github.com/Toilal/5871680f0e5f2fa54412.

This also adds the first unit tests, using karma, jasmine and phantomJS, integrated in grunt default task.
feat(calendar): Add timeFrames display and conflict solver.

This adds display of timeFrames into gantt component.

It also adds solve function to Calendar object.This function is able to solve
an array of timeFrames into another coherent one for a requested date range.

The solve algorithm uses two simples rules.

1) If at least one working timeFrame is defined, everything outside
defined timeFrames is considered as non-working. Else it's considered
as working.

2) Smaller timeFrames have priority over larger one.
feat(demo): Add weekends to demo

This adds weekends to demo using new calendar feature.
docs(readme): Add time-frames and date-frames documentation
feat(calendar): Add options to display/hide timeFrames.

This adds time-frames-(non-)working-mode options to display or hide timeFrames.