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.
The order in the code is reflected in the order when you do `harpoonctl agent -h`. I find it valuable (i.e. much easier to grok) if the commands are listed in a conceptual, rather then lexicographical, order. Specifically, grouping container-status commands, then container-mutating commands, then agent-status commands.