Only perform backquote substitution when needed

This pull request has several goals.

1. fix an issue when using `pluginlib` in a `Xenomai` environment, for example through `ros_controllers`. In such an environment, calling `popen` can have disastrous consequences. While not preventing the call, the proposed fix removes unnecessary calls.

2. Improve speed of `pluginlib`. A call to `createInstance()` has been benchmarked to drop from around 2 seconds to 50 milliseconds with this fix on our local setup with a near-complete ROS hydro install + extra local packages.

3. Improve compatibility with non-POSIX systems, which have no bourne-compatible shell and thus cannot perform the substitution. This point should be further addressed by redesigning the substitution to match that of other components, e.g. launch files.

It is proposed against `groovy-devel` because it is very small and does not break API or ABI compatibility.