Fix constness of some Buffer and BufferList functions.
Add StringAppend function.
Add "cat" and "sed" to discovered tools in acceptance test framework.
Make tmp dir a "real" tmpdir, with permissions and everything.

Some tests that create files as special users rely on this, for
example users promises.
Added a safeguard against using fakeroot together with --unsafe.
Introduce GetErrorStrFromCode().
Add conversion between 8-bit and 16-bit strings.
Fix testall when path contains newlines.

Important for Windows testing.
Add a convenience classes body in tests to set classes unconditionally
Rewrote test tools detection logic.

It should both be more general, as well as more Windows friendly.
Redmine#3323: @include mechanism
Merge pull request #902 from tzz/feature/redmine-3323-includes

Redmine#3323: @include proposal
Merge pull request #1064 from awsiv/fix_histogram_array_initialization

Fix cf-monitord HISTOGRAM array initialization.
Cosmetic cleanup of StringAppend().
Redmine#3454: simple text manipulation functions
Wrap repeated binary lookups in a function in testall.
Add SetIsEqual and MapContainsSameKeys.
Introduce "users" promises into CFEngine.

Collaberation with jeffali <hichame.jeffali@cfengine.com>.
Switch to using StringSet instead of BufferList.

It's more appropriate for comparing.
Add more verbose logging to see what's going on in users promises.