Add possibility of keeping smack_accesses sorted.

Add field sorted to struct smack_accesses, that contains information about
the state of linked list.
For non-sorted list implementation is not changed.
For sorted list, a pair of (subject, object) is a sorting key.
Such sorted list cannot contain more than one entry per pair of
(subject, object) labels. It can be maintained by using functions
smack_accesses_sort, smack_accesses_sort_add and smack_accesses_sort_add_modify
and smack_accesses_is_sorted.

In sort and sort_add functions, if a rule with a given (subject,object) pair
already exists during adding a new rule, the old one is replaced by a new 'set'
rule or modified by the new 'modify' rule.
Implement new functions operating on two sets of rules.

    Added functions:
     smack_accesses_union()
     smack_accesses_intersection()
     smack_accesses_complement()
    The above functions implement boolean set operations on sets
    of Smack rules.
Implement a command line tool "smackpolicy"

The command line tool provides functionality of libsmack functions:
    smack_accesses_sort()
    smack_accesses_union()
    smack_accesses_intersection()
    smack_accesses_complement()
operating on files containing rules and writing output to given file.