(CFACT-50) Fix compilation with Visual Studio.

A number of changes required to build with Visual Studio on Windows.

OpenSSL has different names for the libraries (crypto maps to libeay).
YAML-CPP can have a different name format.
Default move constructors and assignment operators from C++11 aren't implemented in Visual Studio 2013 (or 14 CTP): http://msdn.microsoft.com/en-us/library/hh567368.aspx#defaultedanddeleted
strncasecmp is a POSIX function; Windows has a different name for it. There's a Boost equivalent using ilexicographical_compare that I used instead, with Boost's Range concepts to avoid copying the string while iterating over a substring.
link_directories is required on Windows so DLLs can be found from the specified .libs

Yup. Are forward-declarations within unique_ptr explicitly allowed in the standard?