When a NTP request is sent, it may take several milliseconds to retrieve
the response. This commit changes the NTPClient::update() behaviour to
asynchronous allowing a NTP request to be sent with one update() call
and handle the response when it's available, in another call eliminating
active waiting.
This commit also changes the NTPClient::forceUpdate() implementation to
rely on the logic in NTPClient::update(). However, the behaviour of
this function does not change from the API user's perspective. It is
still synchronous, it only returns when all processing is complete.
The comment directs the reader to find a URL "above" for more information, but there is no such URL anywhere in the source code, and never was even when the comment was introduced to the repository on the first commit.
The NTPClient method update() has been changed to only return "TRUE" after a successful update. The following conditions return "FALSE":
- Interval duration requirement not met
- forceUpdate() times out
I added two functions:
```cpp
setTimeOffset(int timeOffset)
```
Allows you to set the offset at a later stage (e.g. upon timezone
changes or change from summertime to standard time)
```cpp
setUpdateInterval(int updateInterval)
```
Allows to set the interval at a later point. This was helpful when not
setting an offset at initialization and e.g. for other sync times during
special occasions.