(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

Good point. Visual C++ is YAML is fully defined before the template definition, rather than where it's instantiated (in scalar_value.cc). So we'll have to include yaml.h here, which makes sense for anyone wanting to instantiate the template.