This adds a Tools() API call to provisioner API, similarly to the upgrader API. Common code factored out into apiserver/common/tools.go.
SetAgentTools() renamed to SetAgentVersion() in machine and unit state types. Also renamed a few types in params to be shorter or better reflect what are they about. Added DEPRECATE(v1.18) tags to bits of the API that need cleanup.
Live tested on EC2 - after copying the tools from /tools/releases/ to /tools/ the upgrade proceeds and finishes successfully.