Using local variables and introducing common message handling
Introducing options --{sha{1,256},md5,http-proxy}

This commit includes a lot of refactoring, mostly switching to camelCase
and usage of declare (or local).
Merge remote-tracking branch 'origin/master'