First version of the status engine implementation

The Status Engine allow the measurements of how many ModSecurity
instances are running around the world, as long as information
on how many times it had been restarted and so on. Everytime that
the server is started it perform a DNS query that is redirected
to our servers, that query constains information about the
ModSecurity version and it dependencies versions. It also sends a
unique indetification generate locally for the server, avoiding
counting the same server twice while generating the statistics.
This id is a sha-1 hash of the machine name + mac address of the
first network adapter. In this commit it is enabled by default,
in the release will be a configuration option to disable this
functionality. It also important to cite that the information
gather by this query will be also available in ModSecurity website
public open via a JSON stateless API. There will be an fancy
heatmap as well.
Adds SecStatusEngine On/Off switch

Add the possibility to turn the Status Engine On or Off using the
directive SecStatusEngine [On/Off]. By default it is On.
Adds support to status engine on IIS version

Fixes on the windows versions: build, mac address and machine name retrieval
Places StatusEngine to be Off by default

StatusEngine is now marked as Off by default. This patch also adds the
SecStatusEngine directive to our recommend configuration file.
Adds regression test to SecStatusEngine

Just checking the error log while have SecStatusEngine set to On in a first
test and Off in a second.
Adds modsecStatusEngineCall to standalone API

In ModSecurityIIS the configuration is loaded upon the first request
is received. In other words, SecStatusEngine value can be only
loaded once the first request hit the server, and so, the status
function was moved to proceed just after the configuration got loaded.
This update is IIS only.
Optimization on the status engine call

The status string was too long. By removing meaningless stuff, such as: runtime
version of Lua, we have reduced the length of the status string. Limitations
were also placed regarding the size of the ModSecurity version. Big queries may
lead to failure, due to restrictions of "gethostbyname". There is also a bit of
code cosmetics in this patch: big functions were broken into smaller.
Merge branch 'modsec_status'
Added support for JSON body processor
Added sample JSON content-type rule
Makes the build system to look for yajl using a macro file

Now searching for yajl using find_yajl.m4 macro file instead
of using pkg-config directly. If YAJL was not found or if it
was disabled in the configure phase, the code will be compiled
without JSON support.
Supports the yajl version 2

Initially the code was made to support the yajl version 1. The
version 2 is now the default option in most of Linux distributions.
Adds support to JSON parser in the nginx module

Building with --enable-standalone-module was failing due
the lack of the reference to the msc_json.c file inside the
standalone/Makefile.am. This patch also place the dependency
of the yajl to the nginx module config script.
Adds JSON support on ISS port

The JSON parse is already supported in Nginx and Apache
versions. This patch adds support on the IIS port.
Adds unit test to the JSON parser

Unit test to test whenever the JSON parser is enabled
Adds origin to the paramenters that cames from JSON

That is necessary otherwise the Auditlog will try to access it generating
a segfault.
Adds verification before access the strcmp

Audit log was making the assumption that "arg->origin" was filled which
is not necessary true. This commit adds an verification.
Changes JSON parser to not accept parcial contents
iis: fixes on the installer

The installer is now using the correct 32/64bits folders to install
ModSecurityIIS. A new option was added to perform the installation without
configure the ModSecurityIIS dll into IIS.
iis: Adds Visual C++ 12.0 Runtime to be part of the msi package

Visual C++ 12.0 Runtime files are now part of ModSecurity MSI package.
Users don't have to download the vcredist files anymore. Build script
was also updated, to handle the new flag -arch.