Fix Redmine #3417

Compilation fail of verify_environments.c on OSX, fixed by adding
missing parameter `ctx`.
Make GAINROOT variable overridable by an environment variable.
Add support for "unsafe" tests.

They are meant to contain tests that modify the real system and can be
potentially harmful. They can be turned on by using the --unsafe
option or using the UNSAFE_TESTS environment variable.
Add documentation of "--unsafe" option to testall.
Updated documentation with regards to test naming.
Merge pull request #951 from tzz/tzz/evaluate3

eval() gets SI units
Merge pull request #947 from zzamboni/fix/osx_verify_environments_redmine3417

Fix Redmine #3417
Merge pull request #832 from tzz/tzz/feature-canonify-uniquely

add new canonifyuniquely function
Revert "Make hashing locks optional (only if lmdb is chosen)"

This reverts commit 683254b54dc205367e05138dd510dc072d39c3cf.
Revert "Make GenerateMd5Hash optional"

This reverts commit d985c667da0d1817255d75202471aff3784b35db.
Revert "Do not hash license tracking locks"

This reverts commit 3aade72d2748382f93ca54fc7e67ac04cdbca1bf.
Revert "Adapting CFE locks to lmdb length limit (and fixing unit test)"

This reverts commit 0d44c2d2151f44f5821da4a694b100936005f3ef.
Revert "Add LMDB support (TCDB is still the default option)"

This reverts commit 670ea61c38b07838868984d2020eaa640e84ee4e.
Merge pull request #952 from kacfengine/master

Revert lmdb2 branch due to copyright issues.
Replacing IP parsing with IPAddress

IPAddress implements correct ip parsing according to the relevant RFCs.
I replaced the current parsers which were prone to error with it.
Fixing a warning about no return from function
Renaming files to follow the convention
Moving documentation to the header file.
Removing an unneeded else statement

This removes a warning saying that the function returns nothing.
IO related unit tests for TLS

The tests included in this commit relate to tls_generic.{c,h} and cover
the IO parts of the TLS protocol.
I rewrote the TLSRecvLines function to make sure we get the first line,
and there are no possibilities of exploiting our parser.