currently checkValidity has an auto renew mechanism, but is better to emit the possibility of a renewal, to be initiated separately by the callee. checkValidity will be the most frequently called method, so has to be more gas efficient and lightweight.
this is more gas efficient, reduced from 3300 to 1300 ish.
the auto renewal option is moved to a separate function, allowing callers a choice.
the notion of a series of cycles has also been factored out, the number of cycles done is removed, always on the current cycle. no need for a billing status either. these are all in the new LicenseeStatus struct
currently checkValidity has an auto renew mechanism, but is better to emit the possibility of a renewal, to be initiated separately by the callee. checkValidity will be the most frequently called method, so has to be more gas efficient and lightweight.