(maint) Update cfacter to build with static libraries

This is part of a larger effort to get cfacter packages into the hands
of users. The quickest way to do this at the moment is to statically
link all of our dependencies. Yes, this will increase the size of the
binaries we're providing, but ultimately will allow easier access to
these packages for our users.

This PR does multiple things along those lines. First, it allows us to
specify if we want to use the shared or static version of the yaml-cpp
library. Both are available in our build, and for our purposes, we want
the static one, while maintaining the option to easily change that
decision later. We already have this capacity in terms of the boost
libs. We're also specifying the static library choice during build time
in ext/redhat/cfacter.spec.erb

This PR is also updating the required runtime dependencies. Since we're
statically linking against dependencies that were built in-house (boost,
yaml-cpp, gcc), we no longer need to make sure those packages are
available at runtime. Therefore, those runtime dependencies were pulled
out.

I also added in the optional dependencies, so we could have the
functionality provided by those libraries available for users.
@MikaelSmith I'm not sure if this change should also have been made for windows. If this needs to be changed back, I'm happy to do so.