my implementation of a file acl module

Hello,

a while ago, I intended to propose a few changes to Ansible's ACL-module. I based these on the version in release 1.4.4 since I had troubles using the devel-branch at the time.

Since then, Ansible's acl-module has changed quite a bit, and my changes are not compatible any more. However, maybe my version of the module can still provide a little input - this is why I send this request. (this is neither intended to exist alongside the current acl module, nor to replace it)

PS: Unfortunately, I wrongly sent an unfinished version of this pull request to ansible/ansible instead of bcoca/ansible about an hour ago. This was not intended, and I apologize for any confusion.

**A few comments regarding the module**

* Main goal was to allow multiple entries instead of a single one while retaining compatibility to the (then) current form of the module. There are two reasons behind this: First, default ACL entries can (afaik) only be removed, if all three of them are removed. Second, I often have loops over several directories we want to set ACLs to, and I wanted to avoid an inner loop for setting all entries of a single directory.

* Another thing I wanted was to be able to specify a complete ACL and have the module set this ACL exactly - in other words, entries not specified should not be in the ACL after the module has run. This can be done by supplying remove_unspecified=yes

* The module relies heavily on the GNU implementation of setfacl (the one that came packaged with ubuntu 12.04). I suspect you use a different one, since my setfacl does not understand the parameter "-h" as yours seems to (follow symlinks).

* Always anticipating changes correctly for check_mode=True seems not as straightforward as I had hoped, especially when supplying multiple ACL entries. After I failed replicating setfacl's logic regarding this in a simple, easily understandable way, I decided to let setfacl do the checking (setfacl --test) and evaluate it's results. This seems to work nicely, at least with my version of setfacl.

* I tried to have internal representations of ACL entries (Keys and Permissions). An ACL in the module is then a dict  of Keys mapping to Permissions.

* I tried to parse ACL entries via regex, it should hopefully interpret them the same way as setfacl.

* A parameter to purge the complete ACL was added (state=empty)

* The module is not well-tested at the moment

I hope that one or the other fragment of my acl-implementation can be useful in the further development of Ansible's ACL module

regards,

Bernhard