Make code structure more clear.

* Abstract a SteamCallbackAsyncWorker.
* Move all workshop related API out.
Port greenworks.ugcGetItems API.