General plugin

Support for multiple plugin framework.

Supercedes: https://github.com/cfengine/core/pull/906