update keystone ready test for grizzly

The keystone server is not guarenteed to be ready when
its service start exits. It is possible that puppet can
attempt to make calls against keystone before it is ready.

The message returned when keystone is not ready has changed
between folsom and grizzly. This commit updates the internal
retry code to ensure that the keystone types will sleep and
rety as expected on both grizzly and folsom.

It also adds a retry method to help clean up the internal
state for testing.

This is an adaptation of a patch submitted by Derek Higgins
(and Nick Lewis helped with the tests a bit)