Infinispan modularity

This is for _master_ only, I'll send different pull requests for branches 4.4 and 4.5 when this is integrated as these need a slightly different solution, but would hope to get this one accepted first.

https://hibernate.atlassian.net/browse/HSEARCH-1692

The summary of the changeset is to add

    currentThread.setContextClassLoader( InfinispanConfigurationParser.class.getClassLoader() );

before parsing the Infinispan configuration file.
> I'm sorry, it's indeed very complex and I came to this relatively small patch after many hours of debugging and failed alternatives.

Because it is complex it might be worth to document in a way which is understandable.

>  If you want to understand the whole picture we can certainly discuss that but please read my related mails to mailing list first

I did, but I am still not 100% clear on what is going on.

> Considering your very limited involvement in this area,

Well, I am definitely interested in class loader issues. After all I also was working last on the `ClassLoaderService`. This code seems to be quite hacky and apparently you arrived there after long debugging sessions. This raises a flag with me and I would like to understand better what is going on. Why is this work around required? What does it do? Is this a result of some container class loading requirements or is there a Infinispan bug, etc