cfg: allow options to be marked as required
cfg: allow options to be marked as required

Implements blueprint cfg-required-options

Add a 'required' flag to option schemas:

  StrOpt('foo', required=True)

which causes a RequiredOptError exception to be raised if the
user fails to supply a value for the option on the CLI or in
a config file.

Change-Id: Ied7bb25f0c1582c4991d0f212f4871b9358b73fb

emonty/oslo-packaging,JioCloud/pbr,openstack-dev/pbr,citrix-openstack-build/pbr,redhat-openstack/pbr,openstack-dev/pbr,varunarya10/pbr,citrix-openstack-build/pbr,redhat-openstack/pbr,klmitch/pbr,citrix-openstack-build/pbr,emonty/oslo-packaging,WiFast/pbr,WiFast/pbr,openstack-dev/pbr,klmitch/pbr,varunarya10/pbr,JioCloud/pbr