Refactored progress reporting infrastructure

The progress package contains functionality to deal with progress
reporting. The functionality is built to serve progress reporting for
infrastructure operations when talking the vSphere API, but is generic
enough to be used elsewhere.

At the core of this progress reporting API lies the Sinker interface.
This interface is implemented by any object that can act as a sink for
progress reports. Callers of the Sink() function receives a send-only
channel for progress reports. They are responsible for closing the
channel when done. This semantic makes it easy to keep track of multiple
progress report channels; they are only created when Sink() is called
and assumed closed when any function that receives a Sinker parameter
returns.
Merge pull request #101 from pietern/progress

Refactored progress reporting infrastructure
Move progress reader to vim25/progress

Refactored the progress reader a little bit to make use of Tee to
forward reports to both a downstream sink and a sink that computes the
reader's throughput.
Merge pull request #102 from pietern/progress

Move progress reader to vim25/progress
Default URL scheme and path if not specified
Merge pull request #103 from pietern/short-url

Default URL scheme and path if not specified
Move resource pool getter to host system object
Move HostNetworkSystem getter to HostSystemFlag
Use default host system where possible
Remove newOvf()
Replace panic by error in host system flag
Merge pull request #104 from pietern/host-system

Host system flag
Add host.esxcli command