Add Client.Upload method

Split out of UploadFile so we can pass in an io.Reader
Add import.Archive interface

In the case of ovf/ova for example, we can open files in a directory
or a tar file.
Stream uploads directly from the .ova file

Using import.Archive interface + client.Upload we no longer unpack .ova
files to temporary files on disk.
Use OutputFlag.Log for ovf warnings
Merge pull request #83 from dougm/ova-stream

Stream uploads directly from the .ova file