API introduction and mass refactoring

This is the first step for 0.8.0

- [x] Use prototype for better performance
- [x] Cleanup Gantt factory using more classes (separation of concern)
- [x] Cleanup gantt directive and scope binding
- [x] Allow configuration using a plain old javascript object with `options` attribute (#134) 
- [x] Introduce an API Object in Gantt factory, to control events and methods from outside (#188)
- [x] Add `new` and `destroy` event for directives, instead of all jquery#bind() ones (#214)

http://rawgit.com/angular-gantt/angular-gantt/api/demo/dist/index.html