minimize the header file
use std::string instead of char* whenever possible
fix conflicts with origin
manage xacml_subject_t with a shared_ptr
manage xacml_resource_t with a shared_ptr
manage xacml_action_t with a shared_ptr
manage xacml_environment_t with a shared_ptr
define and use some xacml utilities

the utilities deal mostly with the possibility to use
a shared_ptr for xacml entities with a deleter that allows
to release the raw pointer. In this way it is possible to
use the shared_ptr with a deleter that cleans up in case of a
failure (e.g. an exception). At the same time however it's
possible to release the raw pointer from the shared_ptr to pass
it to the xacml api, which will then own it.
use xacml utils also for the request

the xacml_request_t is created using the xacml utilities,
in particular the special deleter. The raw pointer for this
request, once initialized successfully, is passed to the
pep api, which replace the pointer with another one. This
returned pointer is managed with a shared ptr and the normal
deleter (xacml_request_delete).