fix(tooltip): Update tooltip template for custom template to be usable

Close #272
fix(magnet): Fix invalid magnet algorithm implementation

Close #291
feat(timeFramesMagnet): Add timeFramesMagnet option

This timeFramesMagnet option enables or disable snap to timeFrame borders.

timeFrame magnet property must also be true (default) for snap to work for a specific timeFrame.

Fix also fix issues in timeFrame borders snap.
feat(tree): Add tree plugin structure
feat(tree): Add model hierarchy for tree plugin

The hierarchy is defined using either parent and children properties in rows model.

parent can contains name or id of parent row, and children is a list of name or id children rows.
feat(tree): Add support of expand/collapse of tree nodes

This also adds custom row filters and sorters available to registration through API.

A custom row filter is used to hide the related gantt rows when a node is collapsed.

In the model, hierarchy information may be inconsistent with natural list ordering of rows. A custom row sorter is registered in tree controller plugin. This sorter solves the problem and ensures consistency between the tree hierarchy and displayed rows in the gantt, while keeping the rows ordering as near as possible from the model list.
feat(tree): Disable drag & drop on tree
feat(tree): Add proper odd/even styling support
feat(tree): Make configured sorting works on each hierarchy level
chore(demo): Add siteMode tree/labels/disabled option to demo
feat(tree): Disable expand button if no children are available
feat(tree): Add API method to refresh hierarchy based on model
docs(tree): Add hierarchy model documentation