refactor(gantt): Replace $scope.template with Gantt object

This refactors each object contained in $scope.template into clear and readable Gantt object variables, making this more readable and maintainable.
refactor(gantt): Split Gantt object into multiple specific managers

This adds RowsManager, ColumnsManager, HeadersManager, TimespansManager and CurrentDateManager into Gantt object.
refactor(gantt): Add more logic subfolders
refactor(gantt): Use prototype based classes.

Using prototype to define class methods is more performant for every classes beeing instanciated maye times, like Row, Task and Column.
refactor(gantt): Better separation of concern

This refactor moves some code from gantt factory and directives to appropriate classes for better separation of concern.

It also fixes some issues introduced by previous refactoring.
feat(api): Add API object

This introduce api object and removes any function bindings, replaced by functions from this api object.

It also removes all $scope.$on events support, replaced by their api equivalents.

Close #188
feat(options): Configure gantt using a plain old javascript object

Attributes can now defined in as a plain old javascript object, using the options attribute.
docs(readme): Update readme with API and new events
feat(api): Add dom new and destroy events

This also make some changes on data passed to parameters, and enhance documentation of events.

Close #214
refactor(columns): Simplify column generation
fix(scroll): Fix scroll while moving tasks
feat(events): Add data events

This adds load, remove and clear data events.

This also adds a columns.on.change event, and fix an issue with rows swapping.

When loading demo, generate columns was called 3 times. It's now only called once.

Close #211
docs(readme): Update Usage section

Update usage section to use new API Object.
Merge pull request #212 from angular-gantt/api

Conflicts:
	assets/angular-gantt.js
	demo/dist/scripts/vendor.js
	src/gantt.directive.js
	src/logic/column/headerGenerator.factory.js
	src/logic/gantt.factory.js