Allow OpenShift to start in roles master and node

* Adds `openshift start master` and `openshift start node` as options
* Use --listen to specify the address to listen on, --master as the public
  reachable address, and --etcd as the URL to the etcd server
* More intelligently default addresses based on user input
* Split startup code into separate packages for cleaner isolation
Update examples
Merge pull request #209 from smarterclayton/give_openshift_start_roles

Allow OpenShift to start in roles master and node
Pause for the etcd server to report ready
Use hostname in both master and node paths
Merge pull request #215 from smarterclayton/wait_for_ready_etcd

Pause for the etcd server to report ready
Added missing controllers in server start
StringList should reset the initial value on Set()
Ensure that etcd binds the peer address to the same as the server
Merge pull request #220 from soltysh/build_not_started

Added missing controllers in server start
Merge pull request #221 from smarterclayton/reset_stringlist_on_set

StringList should reset the initial value on Set()
Merge pull request #222 from smarterclayton/bind_etcd_to_both_addrs

Merged by openshift-bot
Bind the correct master URL for deployments
Allow glog level to be set via the CLI
Merge pull request #224 from smarterclayton/deployment_url_wrong

Merged by openshift-bot
haproxy load balancer plugin