Time Dependencies  
=================
o It should be noted that even when the server is suspended. 
  i.e no jobs are submitted
  The time based attributes will still be updated.
  
o The calendar is used to update the time dependent attributes. via call to updateCalendar()
  Any time based attribute which is free, during the call is *marked*
  This allow checking for free/holding to return immediately when free.
  
  When the node is 'begun' or requeed  the time base attributes are reset.
  
  
Trgiggers & complete
===============================================================
o During Node::resolution() any triggers and complete expressions
  that are free are *marked*
  
o When a node is 'begun' and trigger and complete expressions are reset.


Both of the above approaches will speed up updateClanedar() and node resolution
and thus allow for faster job submission.

Days
===================================================================
There was a bug in ecflow 4, and ecflow 5.3.0->5.3.1, where the days implementaion was incorrect.
The old implementation checked if we should re-queue like:

   bool DayAttr::checkForRequeue( const ecf::Calendar& calendar,const std::vector<DayAttr>& days) const {
      .....
      return (day_ > calendar.day_of_week() );
   }
   where day is enum.   enum Day_t { SUNDAY=0, MONDAY=1, TUESDAY=2, WEDNESDAY=3, THURSDAY=4, FRIDAY=5, SATURDAY=6 };
   
However this is flawed because:

   o day saturday, will always re-queue
   o day sunday    will never re-queue
   
The new implementaion uses a real matching date, where we have two re-queues
  - requeue due to time dependences leaves the date on the day attribute as is. Allowing a check for expiration
  - requeue due to repeat increment allows reseting the day attribute to a future date
