Make metadata updates async and throw after timeout (#1168)
* Make metadata updates async and throw after timeout
* remove unused stuff
* rename
* fix update logic
* make sure to clear requestIds
* change order
* return after resolving promise
* use mutex to prevent simultaneous metadata updates
* Create dry-carrots-visit.md
* Add attributes to requestMetadataUpdate
* remove metadata lock
* remove unused class property
* fix build