Reduce duplicated code related to policies

This patch adds some logic that is currently duplicated throughout
Openstack. As part of this de-duplication, the patch also modifies
current implementation.

Major Changes:
    * check, set_rules, reset, init are now part of the Enforcer class
    * check was renamed into enforce
    * init was renamed into load_rules
    * It is now possible to load multiple files and have per instance
      rules instead of global rules.
    * There's a global instance of the Enforcer class that can be used as
      main enforcer.

        from openstack.common import policy
        ENFORCER = policy.ENFORCER
        ENFORCER.enforce(rule, target, creds)

Minor Changes:
    * Added do_raise to the enforce method
    * Enforcer instance is now passed to the Check call.

NOTE: If / once this patch gets in, I'll update other projects and port
them to the latest version.

Change-Id: Ife909bdf3277ef33c2fb1eae16ae261fa6374c63
Use zero-copy in ZeroMQ proxy (zmq-rpc-receiver)

Now, messages will not be copied into the Python memory space
from the C library. The 'topic' key *will* be copied, to make
use of several string/bytes functions that are available to us.
(Potentially, we might be able to work with this as a memoryview
in the future as a further optimization?)

Implements blueprint zmq-zero-copy

Change-Id: I20a700867ac642b1a1788b31e3a21f8a299c97c8
Merge "Use zero-copy in ZeroMQ proxy (zmq-rpc-receiver)"
Merge "Reduce duplicated code related to policies"