x509 auth

This adds x509 as the second "core auth" mechanism.  That means you can have
either Basic or x509.  Both will still work with tokenized authentication.  The
'rhc server' command now also supports x509 certificates since previously there
were no support for keys.

One notable change is that this will always attempt to use Tokens if they are
configured.

Previously:

1) If rhc has a token it will use it
2) If doesn't think it can get one it will use 'core auth'.  Today it's
   only Basic Auth
3) If it falls through it will issue a bogus request that has no auth
   mechanism and rely on a 401 to trigger the token retry logic.

During the first request @can_get_token was always false since it's not set
until after the API has been fetched.

Now:

If tokens are configured they will attempted.  If one doesn't exist the Bearer
header value will be empty and trigger the 401 logic as before.
Bug 1082973 - improved exit message when there are warnings from broker
Merge pull request #633 from fabianofranz/bugs/1082973

Merged by openshift-bot
Bug 1091071 - properly displays haproxy on app gears
Merge pull request #486 from brenton/x509

Merged by openshift-bot
Merge pull request #632 from fabianofranz/bugs/1091071

Merged by openshift-bot
Automatic commit of package [rhc] release [1.28.3-1].
Bug 1067874 - fixes rhc server status messages
Merge pull request #634 from fabianofranz/bugs/1067874

Merged by openshift-bot