Parallelise FSM transition execution and subsequent monitoring data refresh, using asyncio and httpx
To implement this change I updated the code to use httpx & asyncio
As part of this branch I also improved the _update
methods to stop them being called multiple times, and updated the File
class to cache download results, so that the same file isn't downloaded mulitple times.