Implement async upgrade checker

* Reads from github looking for updated tags
* Runs in a goroutine to not slow down normal operation
* Uses the timelock cache to only check github at intervals