Allow OpenShift to start in roles master and node

Adds a "master" or "node" optional role argument to the start command.  Separates the --listen, --master, and --etcd parameters and makes them default to values that work for the local cluster more effectively.  Split code for starting components into their own packages.
The URL actually only has the "Host" field, which is an opaque field containing both host and port.  We need to get at the host and port individually in separate cases, so splitting them out explicitly centralizes that code.  Example - if someone gives us a MasterAddr of `foobar:8080`, we want to expose etcd on `foobar:4001` so that nodes have consistent access.  The URL host would be `foobar:8080`, not `foobar`