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.
feat(timeFrames): Add cropped option to time-frames-(non-)working-mode

This adds cropped option to working and non-working timeFrames. When cropped,
timeFrames are dropped from gantt display and computations.

If a column is totally cropped, it won't be generated by column generator and won't be displayed at all.
fix(timeFrames): Fix cropped timeFrames for columns smaller than 1 day

This also add one unit test more for this case.
feat(column): Add column-magnet option

This adds column-magnet option to replace column-sub-scale. All interactive actions will snap to the configured column magnet duration.

Closes #123
perf(column): Enhance performance of columns when timeFrames are cropped

This enhance performance of getDateByPosition method in column factory
when timeFrames are cropped.
fix(column): Build default headers properly
Merge pull request #174 from angular-gantt/momentjs-columns

Conflicts:
	assets/angular-gantt.js
	demo/app/index.html
	demo/dist/index.html
	demo/dist/scripts/vendor.js
	src/gantt.directive.js
	src/logic/columnGenerator.factory.js
	src/logic/gantt.factory.js
	src/logic/headerGenerator.factory.js
	src/template/default.gantt.tmpl.html