Introducing a SidFactory

* I made some research on different forums and it appeared I'm not the only one who was suffering because of hardcoded sids being created. In my case I needed Groups of Users and Users themselves and for this I needed different Sid classes, so I had to create a SidFactory and replace all the places where Sids were created with this factory.
I made changes so that nothing differs in the logic of Spring ACL, but if user wants to create custom Sids, he is welcome to introduce and inject his own factory.
* Another problem was that Sids don't have a method 'getSidId()' and thus we're forced always to cast them to particular implementation which is also ugly. 

Please, consider this patch to be included into Spring ACL sources and I'm really willing to hear the feedback about suggested changes.