Task start form validation. Use "Time" objects for "wake" and "sleep".

* Change "wake" and "sleep" to "Time" objects.
* Restrict input into duration inputs to "0-9".
* Add boundary validation for start time of task.
* Add "less than" and "greater than" methods to "Time".
* Modify task form stylings so that ".form-group" elements are a consistent size
  and don't shift when error messages appear.
Task form validation and element styling. Fix task creation and "Time" constructor bugs.

* Add "resize" flag variable to task element scope.  Add logic to toggle flag.
* Change height of unassigned task elements to be auto.  Apply "clearfix" class
  to task elements in backlog.
* Limit characters allowed in duration inputs.
* Limit duration hr value to be < 24.
* Refactor task form validation logic a bit.
* Fix bug with task creation where new tasks had their "day" assigned.  See
  task_services.js, line 71;
* Fix bug in "Time" constructor where "wake" was assumed to be an integer.
* Fix space placement in "Time.toString()" method.
* Change task backlog styling to have a max-width and overflow-y scrolling.
* Make controls in task element only visible on hover.  Add other styling to
  make task element look good.
* Make task duration appear at all times.
* Add "assigned" class to assigned task elements.
Add Wake/Sleep change widget.  Make Time.toString() more robust.

* Add "hourSelect" directive for a widget that will display a "Time" instance
  and allow user to modify it with arrows.
* Modify "Time.toString()" method to handle times beyond 24hrs.
* Update user control panels and clickables styles.
* Add widget to user control panels to modify "wake" and "sleep" times.  TODO:
  Make this widget aware of assigned tasks.