Plugin to do backup of Microsoft Sql Server (mssql) server

Implement a native backup plugin for MSSQL based on the
Virtual Device Interface (VDI) which uses the native MSSQL
backup tooling but instead of writing it to a tape or disk
directly it will save it to a so called virtual device from
which the plugin reads the data on restore we restore to
a virtual device and the native MSSQL software recovers
the database from that.

This is based on the mssql-fd found on sourceforge from 2010
but with a lot of changes to adhere to the Bareos coding style
and to be able to compile it with mingw instead of Visual C.

We also rewrote it to use pthreads instead of the windows threading,
and the whole code is made somewhat more modular using inline
functions which handle certain logic operations.

We also implemented the ability to overwrite the plugin options
which can be passed in via the Plugin Options method from the
restore menu.

Currently we allow on restore to restore to a so called
Point In Time (PIT) using the normal MSSQL STOPBEFORMARK, STOPAT
and STOPATMARK which allow you to rollback to a certain time
or specific LSN (Log Sequence Number). This should all make
sense to MSSQL DBA's who are used to using the native backup
tooling to make disk backups.

Fixes #199: Plugin to do backup of Microsoft Sql Server (mssql) server
Add the new mssqlvdi plugin to the windows installer.

Fixes #199: Plugin to do backup of Microsoft Sql Server (mssql) server
Allow upgrade on windows

Now we check if bareos is already installed on the windows machine.
If so, we call the uninstaller of the previous version and install
ourselves afterwards.

The newer uninstaller keep the configuration files as the uninstaller is
called accordingly.

The dialogs for parametrizing the configuration and the dialog
for the config snipped are not shown, as the existing configuration
files will be used.

Still the user has to choose the same components during the upgrade
as were installed before.

fixes #225: Windows installer can't upgrade in place
Bwlimit not working in Windows 64bits client

The nanosleep implementation in compat.c for windows if of poor quality.
Try using the fallback to the pthread_cond_timedwait() in bsys.c by
no longer claiming in the mingwconfig.h that we have a working nanosleep()
and remove the poor implementation. There are a couple of ways of sleeping
in a somewhat portable way e.g. select(), poll() or pthread_cond_timedwait().
So for as we use pthreads anyway everywhere we leave the pthread_cond_timedwait()
method.

Also check if bmicrosleep() returns early in the bandwidth limiting code
and if it does schedule an new bmicrosleep() of the sleep time remaining.

Fixes #226: Bwlimit not working in Windows 64bits client