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.