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.