Bosh agent changes to support redhat based Platform

A whole buch of changes to support bosh_agent on redhat based environment
* Code cleanup
* Code reorganization for cleaner/better abstractions.
* Prefer to use `Bosh::Exec.sh` instead of direct ruby shell exec.
* Update and add tests.