SetNextWaypoint()

(1) Determines if properly set, e.g., nonempty seglist
    Sets current status to "empty" if not proper

    until next call to setNextWaypoint()
      hasCompleted() returns false
      hasAdvanced()  returns false
      hasCycled() returns false
      inTransit() returns false
      isEmpty() returns true
      currStatus() return "empty"
    
(2) Determines if we have reached the current waypt
    If NO

    until next call to setNextWaypoint()
      currStatus() return "transit" 

    If YES
      Set status to "advanced"
      hasAdvanced() will return true
      This function will return true if status is advance, cycled or completed

  (2a) Determine if point hit was last in the seglist
      If NO
         done
      If YES
         set status to "cycled"

      (2b) Determine if completed cycle was final cycle
      If NO
         done
      If YES
         set status to "completed"

  hasCompleted() true if status: completed
  hasCycled()    true if status: completed, cycled
  hasAdvanced()  true if status: completed, cycled, or advanced
  inTransit()    true if status: transit
  emptyPoints()  true if status: empty