cfengine/core — pull request #731 by tzz (2013-06-04 16:06:17+00:00)
Title: cfengine_stdlib.cf: first split attempt

Please do not merge, just review. This creates three files:

* `cfengine_stdlib.cf`: compatible with 3.3.x and up
* `stdlib-3.5.0.cf`: compatible with 3.5.0 and up
* `stdlib-pre-3.5.0.cf`: compatible with versions before 3.5.0

I have not changed any policies that use the relevant bodies and bundles to include these new libraries, this is just a proof of concept.

Right now the changes are ("safe" means we can commit them and won't break existing policies in core.git):

* `apt_get` and `apt_get_release` package method bodies had to be forked: there's a version for 3.5.0 and higher and another for before 3.5.0 (3.3.x, at least, doesn't like `package_version_less_command` and `package_version_equal_command`). Neither package method is used by our policies so this is safe, but our users may be affected because they now have to include `stdlib-3.5.0.cf` explicitly. This is the only one that concerns me.

* the `yum_group` package method has a small bug fix to use yum's full path. This is safe.

* back to `true`/`false` for the `useshell` body contain attribute for backwards compatibility, but commented. This is safe.

* the body `scoped_classes_generic` was moved to 3.5.0 only. It's not used by any of our policies so this is safe. Our users may be affected because they now have to include `stdlib-3.5.0.cf` explicitly but this is unlikely.

* the agent bundle `fileinfo` was moved to 3.5.0 only. It's not used by any of our policies so this is safe. Our users may be affected because they now have to include `stdlib-3.5.0.cf` explicitly but this is unlikely.