Add support for Debian's GNU/kfreebsd

See http://sources.debian.net/src/cfengine3/3.2.4-2%2Bnmu1/debian/patches/626647-kfreebsd-support.patch for reference.
Fix redmine #2936
Change testall script to expect being in OBJDIR/tests/acceptance

A clear error message is printed if this is not the case. This way we
avoid looking for cf-* executables in erroneous directories, which
happened when building out of source directory.
Add acceptance tests for redmine #2936.
Server should not die when receiving bad data.

Replace ProgrammingError() with just a warning. Also fix switch
statement's erroneous fall-through, it was causing hub's serverd to die
when call-collect reporting was denied.
Removed unnecessary and dangerous scanf.
Expand test don't need to ScopeSetCurrent anymore
Prevent unexpanded lookups to EvalContextVariableGet
Do not expand l-vals in EvalContextVariableGet
Ensure lvals in VarRefs are not composite for EvalContextVariableGet

This is a prerequisite for a new symbol table. Previously the lval
compontent of a VarRef that was passed to EvalContextVariableGet could
contain a dot, meaning that we had parse this out before looking up the
variable. This would then take presidence over the scope component of
the same VarRef.

This commit asserts that VarRefs passed to EvalContextVariableGet are
proper VarRefs.
Use VarRefParse for almost all variable lookups.

As opposed to constructing VarRefs custom using C99 inline struct
definition syntax.
Only ScopeSetCurrent on stack push/pop
Remove most uses of VarRefParseFromBundle

This is ordinarily no longer necessary as the stack contains
information about what bundle is currently evaluated.
FnCallJoin may use implicit scoping
StringDataType may use implicit scope
FnCallIsVariable may use implicit scope
Ensure VarRefs can parse indices with special symbols, add test
Use VarRef parsing in vars actuator
Decompose scope and namespace in struct Scope
Merge pull request #819 from sigurdteigen/cleanup/scopes

Cleanup/scopes