Add isolation support for plugins

When loaded from /plugins directory, plugins main jars and libraries are all added to main ClassLoader during the PluginsService initialisation. As a consequence, plugins share same resources and classes and thus could not use different, maybe conflicting versions of the same dependency.

This pull request adds support for loading each plugins in its own isolated ClassLoader that uses local class definitions first. This feature may be activated using the "plugin.isolate" boolean setting.

More details on the discovery case and on a working demo here : http://lbroudoux.wordpress.com/2013/06/13/plugin-isolation-support-in-elasticsearch/

Regards,