Changes JSON parser to not accept parcial contents

Also cleanup installer file.
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.
iis: Adds condition to avoid the use of 32b msi on a 64b os

The 64bits version of the package offer the possibility to install the 32bits
version of the DLL along with all 32bits dependencies.
iis: Adds listing dependencies script

This script could be used in order to verify all ModSecurity run time
dependencies. It is now part of ModSecurity folder in Program menu.
Cosmetics changes in the installer
IIS: Updates build_msi.bat to fit the new WiX install options

Instead of -dPlatform a recent update in the WiX files are demanding
the parameter -arch, although this parameter is not valid nor needed
while running "light".
iis: Adds cleanup methods to the installer

Older versions of ModSecurity left files/configurations behind. This commit
adds capability to cleanup the IIS configuration files.
iis: Updated OWASP crs to version 2.2.9
iis: Removes unnecessary files.

"Installer project" is now longer used.
Reverts commit: a4202146b8d26b6615bbab986383fe0afae60d77

Testing inet_pton with the help of Steffen. Acording to Steffen we can use
!(NTDDI_VERSION >= NTDDI_VISTA) to identify that the specific Windows version
has this function defined or not, if so we can use the Windows version.
Reverting this commit to avoid to overwrite the Windows' function. And
see the original error that happened before this commit.
iis: Checks Win version before declare inet_pton

Checking for `!(NTDDI_VERSION >= NTDDI_VISTA)` to decide whenever or not
to declare the inet_pton function.
iis: Adding VC110 files to the Windows installer

For some reason the DLLs still demands the dependencies of the
VC110 files. Providing those as part of the MSI installer
iis: Disables installer repair

Currently we don't have support to repair, so, this commit is
marking it as disabled.
Adds support to suspicious and whitelist to Read and Write limits

The operators @ipMatch, @ipMatchF and @ipMatchFromFile were
added to the functions: SecReadStateLimit and SecReadStateLimit,
by using them it is possible to declare a suspicious list. When
a suspicious list is given, the {Read|Write}StateLimit will be
applied just to the IPs that belongs to that restricted list.
Note that the negative of those operators (e.g. !@ipMatch) can be
used to place a whitelist. The {Read|Write}StateLimit
restrictions will not be applied to those in the whitelist.
This current version the Sec{Read|Write}StateLimit can be used
varios times to add elements to both lists, however, the
last informed limit will be applied for the entire group. This
feature is experimental, and suggestions on how to improve it
are very welcome. For further discussion use the issue: #353.
Bugfix: Missing ipv6 support check

The Function "ip_tree_from_file" was making a reference for
IPV6_TREE whitout checkingx if it was supported or not.
Using RadixTree instead of list to storage IPs

Used by the operator @ipMatch and variants, this structure storage all the IPs
addresses for later comparison. Last version was using RadixTree only if the
set of IPs was specified from files. IPs specified as parameters, was using
a chained list. Chained lists may affect the performance, since lookups in
worst case will be O(n). RadixTrees could provide better results depending
on the amount of elements and its contents.
Honor the SecRuleEngine while filtering connections

The SecRuleEngine has the capability to Enable, Disable or even to place the
ModSecurity in DetectionOnly mode. The SecReadStateLimit and SecWriteStateLimit
were not honoring such state, due the fact that our configuration belongs to
requests not to connections, the only struct that exists while those filters
are placed. By adding a global variable "conn_limits_filter_state" we are now
able to identify the current state of the ModSecurity, once the configuration
is loaded this variable is set and used by the connections filters.
Places connection filter engine in a separated configuration

Different from the Rules or other options, the connections filters are applied
to entire server, not to a single vhost, or so. In order to keep it clear to
the user this patches adds "SecConnectionEngine" which works in the same way
that SecRuleEngine does.
Renames Sec{Read|Write}StateLimits

The Sec{Read|Write}StateLimits are filters related to the connections, when the
server did not know yet which vhost the request goes to. This means that once
those configrations are set it will be applied to entire server. This patch
just renames the Sec{Read|Write}StateLimits to SecConn{Read|Write}StateLimits
to make it more clear to the user. SecConnectionEngine was also renamed to
SecConnEngine.
Removes forced chartset

Apperantly forcing the charset is not placing any benefits, instead it is
cousing problems as documented on #650. This still experimental, just
testing against our regression tests. Such feature was added by the commit:
177b5b9c989b0095e5c91b01d205df64e65e6c9e.
Adds initial support to @detectXSS

Libinject was recently updated to support XSS detection. This commit adds
initial support to it.