Wrap groovy script exceptions in a serializable Exception object

Fixes #6598

It prevents ES from trying to serialize the default Groovy exceptions, which want to carry over a lot of state that doesn't  serialize properly.
you have a logger in the AbstractComponent, can you use that and not create a new one? It automatically makes sure to log the node name in top level component, and if its an index / shard service, log the index/shard as well