Async artifact download

Make artifact download asynchronous.  This necessitates splitting the api operation create into create + start.  The harpoonctl agent create command now only performs create and then waits for that operation to complete.  There is now a harpoonctl agent run command that performs create followed by run if the create is successful.
Since we're now `go`-ing this function, if `fetchArtifact` blocks for whatever reason, we can leak goroutines. Do you think it's smart to put a timeout into this function, to ensure we don't block here forever? It's not a simple fix; large artifacts might take al ong time to download. Maybe it's better managed with telemetry + warnings...