(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.
I just wanted to point out that I've added in the optional dependencies for these builds. I figured it'd be nice to have the functionality provided by this inclusion available to users, especially because this is mainly for testing. If this was the wrong assumption, and we don't want to build with the optional libs, let me know and I can remove them.