"publicurl" should be required on endpoint-create

publicurl field is required and cannot be empty when create a endpoint in
keystone server.So the "--publicurl " also should set as mandatory in
keystoneclient.

Change-Id: Ia397c79a28dd3a6ddef141df0f7df30cc0bf7b6c
Closes-Bug: #1246335
Add workaround for OSError raised by Popen.communicate()

Python 2.6 can raise OSError when too much data is
written to STDIN and the process died prematurely.

In the case of keystoneclient this happens during
the first cms_verify() call of a process. The calling
logic expects a useful error message in order to
refetch the CA or singing CERT, which is missing in the
case of an OSError. So just fake it instead.

Add basic unit tests to cover all of the public methods from
keystone.common.cms, raising test coverage to 77%. Add
unit test for this specific bug (test_cms_verify_token_no_oserror).

Closes-Bug: LP Bug#1235252

Change-Id: I6e650ab9494c605b4e41c78c87a9505e09d5fc29
Merge "Add workaround for OSError raised by Popen.communicate()"
Merge ""publicurl" should be required on endpoint-create"