Merge pull request #231 from melissaanne/master

Build cfacter for lucid and squeeze
(CFACT-137) Define UNICODE on Windows

Force use of Unicode APIs on Windows by defining UNICODE and _UNICODE,
following the recommendation of utf8everywhere.org, and convert to and
from UTF16 for the API calls as needed.
(CFACT-137) Add Boost.Nowide for Windows UTF-8

Add the Boost.Nowide (candidate) library for UTF-8 aware standard library
wrappers on Windows.
Replace our own to_utf8/to_utf16 and environment manipulators with
Boost.Nowide. Also use it for fstream/fopen. cout/cerr aren't replaced due
to the dependency on building a binary object, to be resolved later.
(CFACT-137) Use Boost.Nowide cout/cerr adapters

Use the Boost.Nowide cout/cerr adapters that ensure UTF-8 will be printed
correctly on Windows. Requires building the Boost.Nowide library on
Windows, and adds tests for the library.
Merge pull request #228 from MikaelSmith/bug/master/CFACT-137-UNICODE

(CFACT-137) Use UNICODE APIs on Windows
(CFACT-145) Fix mismatch between Ruby and C++ log level enum.

Recently the "none" logging level was added to completely disable
logging by libfacter.

Unfortunately I forgot to update the corresponding definition in the
Ruby gem.  This mismatch caused the "info" level to be the
default during libfacter initialization instead of the expected
"warning" level.  This resulted in unexpected messages to be printed out
by libfacter when run under Puppet.

The fix is to properly synchronize the two enum definitions.
Merge pull request #233 from peterhuene/cfact/145

(CFACT-145) Fix mismatch between Ruby and C++ log level enum.
(maint) Update README to link to extensibility document.

Updating the README to link to our extensibility document so that users
know how to extend native facter using custom and external facts.

Removing the C++ usage section from the README; I think that this makes
it seem that you extend native facter in C++, and that's not the case.
Merge pull request #235 from peterhuene/maint/readme

(maint) Update README to link to extensibility document.
(CFACT-137) Fix Unicode support

Command-line arguments aren't necessarily passed in Unicode, Boost.Log and
Boost.Filesystem use wchar_t instead of UTF-8 by default, and Ruby uses
local encoding by default. Change all of these to use UTF-8 in char.

For copying a UTF-8 string, we need the #bytesize rather than
(number of characters) #size.

Move testing to Ruby 2.1.3 on Windows to avoid a bug in Ruby's #load
method with Unicode paths, filed as ticket CFACT-170.
Merge pull request #234 from MikaelSmith/bug/master/CFACT-137-UNICODE-fix-test

(CFACT-137) Fix Unicode support.
(maint) Fix missing OS facts

architecture and hardware facts were dropped in a restructuring of
architecture facts into the operating system structured fact. This fixes
that on Solaris and OS X.
Merge pull request #237 from MikaelSmith/maint/master/fix-missing-os-facts

(maint) Fix missing OS facts
(maint) Remove boost nowide from packages

boost-nowide is a package we vendor via submodules. This vendored
package gets build for use when we build cfacter. The libraries it
creates are only needed for buildtime, and not at runtime. In order to
only ship files that are needed, we should pull out all of the files
that boost-nowide installed. This pull request does that.