Overhaul drag/drop logic.  Add instructions for new users.

* Move all of global functions/variables in util.js into a closure.
  Use dependency injection for the references to these variables in
  the other code.

* Increase the distance from which a task element snaps onto the
  timeline to 60px.

* New drag/drop logic allows element to be pulled to the very bottom
  of the time-droppable and to be snapped to the time-droppable from
  further away.

* Switch to using separate "start" and "duration" variables on a task
  element's scope for dragging and resizing.

* Refactor the task element style logic.  Split it up into "$watch"es
  of the task properties that will change the element's appearance.

* Move drop logic into "stop" callback of task draggable to
  consolidate task drag'n drop behavior logic. Set the "top" css
  property of the element directly because for whatever reason setting
  it on the $scope.style object doesn't update the actual element top.

* Fix bug where localStore tasks not being editable.

* Add affixTop utility function.

* Increase minimum width of page (body element).

* Remove snapping elements from inside of timeline and replace with a
  large containing element that only overlaps with the left and right
  sides of the time-droppable element.  The top and bottom extend
  outside the containment element for the draggable elements.

* Fix the width of the displayed date.

* Add arrows and instructions to point out what the different widgets
  do.