Factored out VirtaulBox details into another package
Fixed flag usage cases.
Fixed global flags

Make verbose and vbm pointers so we can do late binding and pass them to
other packages.
Assorted fixes per code review
Waiting for VM to stop is handled by the go-virtualbox package
Use NIC network and hardware constants
Print command executed in verbose mode
Simplified profile parsing

Reuse the flag package to parse the configuration profile so we do not
need to use a separate pacakge. The trick is to transform the key=value
pairs in the profile into string slice of the form --key=value, then
insert the string slice between os.Args[0] and os.Args[1:]. The
flag.Parse() will take care of the rest. Less work to do and more
consistent results. Win-win!

Additionally, changed the type of some flags to reflect its nature.
Fixed profile example in README.
Fixed default value for iso and dir flags.
Prefer shorter names.
Use forked pflag package with more data types
Used forked pflag package.
Fixed 3rd-party import url
Improved PFRule data types
Fixed: repetively connect to SSH port at interval

This is to wait for the VM to properly boot. Initial booting will take a
bit longer due to the need to format disk and configure other settings,
during which time the SSH daemon might not be reachable.
Moved in the code from package `go-virtualbox`
Fixed import URL
Use drive type and storage controller chipset constants
Switch to the updated original pflag package

The changes we propose have been merged (actually rebased), so there is
no need for using my fork any more.