Append File Upload capability to ESX driver

Currently esx_vi.c supports file upload/download to the server
but only for string based contents. This patch extends the support
to upload file contents by opening file and sending data in chunks
using CURL POST operation.

This patch also servers as fundemental block for OVA installations
to create new domain. This patch introduces a structure to maintain
metadata information about the file being uploaded, it defines an
enum to allow user to set the "file type". For instance: OVA
disk(s) while uploading needs to refresh "lease timeout" by reporting
upload progress, the file type allow us to perform specific operations
to be performed per file upload if needed.