zpm: remove Deployer class

Classes typically represent things -- they are normally named with
nouns to reflect this. The Deployer class was encapsulating a
behavior, the deployment of a zapp. This was reflected in the fact
that the class had just one public method, this was the class' sole
behavior. The state of the class was not very interesting.

The class thus behaved very much like a function. This is a very
direct translation of the class and its methods into a set of
functions.
zpm: inline single use _upload function

When adapting the tests, it was discovered that the previous mocking
was wrong. The zpm._prepare_upload function was mocked to return

  [('a', 'b'), ('c', 'd')]

even though this is an impossible return value for it -- the function
will always return tuples where the first element contains a '/'. This
is the slash that separates the container name from the object name.

This was not discovered earlier because zpm._uploads was mocked too in
the tests and so it ignored its arguments.
zpm: let _prepare_uploads return a generator instead of a list

Returning a list implies that we buffer the data we upload in memory.
Turning the function into a generator avoids this.