(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

What was the compiler error that caused you to move this?  While this will work because of the way we've externally declared the instantiations we know about (and you defined it before we perform the actual instantiations in scalar_value.cc), if someone wanted to include this file and derive their own type from it, they wouldn't be able to do so without having to redefine this member (and the above move constructor / assignment operator) before instantiation.