Improved option to control if a task can be moved inside a row and between different rows.
Added flag 'userTriggered' to all events. If set to true then the event was raised because of a user action.
Header column texts are clipped if too long to not overflow into the next column
Day column can now show/hide non-work hours

Added functionality to that allows the day column view to take account of the “show-non-work-hours”, and “work-hours’ settings.  For this to work correctly with drag and drop the “column-sub-scale” setting must exactly divide the number of hours in the working day.  For example, an 9 hour working day could have a sub-scale of 9, 3 or 1, but a sub-scale of 8 will give strange behaviour when dragging and dropping.

Demo files have also been updated to demonstrate this feature.
Correction for task snapping issue

When a period of time is hidden (for example when weekends are not showing, or when non-working hours are hidden) then one point on the gantt can represent two different times.  For example, with weekends hidden, the line between Friday and Monday represents midnight on Friday night and midnight on Sunday night (into Monday morning).

When resizing or moving a task it is possible to select between these times with very small mouse movements, however there is no visible difference to the task block.  This could lead to tasks being snapped to the incorrect time unless great care is taken.

The date that the user wants to snap to typically depends on what they are snapping.  For example, if the user is resizing the end of a task and they move it to the line between Friday and Monday, they most likely want the task to end at the end of Friday.  However, if the user positions the start of a task on the same line, they probably want it to start on the start of Monday.

This commit implements this snapping behaviour.
Tweak to the addRow method of Gantt, to catch the case where rows contain an empty tasks array.  This avoids an exception when expandColumns() is called.
Added functionality to show time bounds for a task.  Hovering over a task that has an “est” (earliest start time) and “lct” (latest completion time) set will indicate this time window on the gantt.

For example see “Concept approval” and “Create concept” tasks on the demo gantt.
Fix edge case in DayColumn getPositionByDate

getPositionByDate() in DayColumn had the implicit assumption that the date argument would be on the same day as the column date.  This is not always the case - if the date argument is on a day that is hidden (like the weekend) then the column is the nearest visible day prior to the date argument.  In this case, the the time of the date argument (which is used by the rest of the method) is not relevant.  Added a check to catch this case and return the position at the far right of the column.
Add priority option for tasks.
Merge branch 'feature/restrict-task-to-row' into develop
Reset cursor before raising task moved event
Added labels resized event
Merge branch 'feature/add-task-priorities' of https://github.com/chexxor/angular-gantt into feature/pull-request-33
Added a description of the row and task object properties to the readme file
Merge branch 'formerge' of https://github.com/andrewbone/angular-gantt into feature/pull-request-29
Made task bounds work in all scale modes and don't add a task bound to the DOM if not activated for the task
Adjusted sample data file
Change task.color to task.classes.
Add compressed source: angular-gantt.js.
Move row z-index to top on hover too ensure its tooltip is above all.