Significant changes to CFG

doc.bnf had really terrible performance for what it was doing, but I
stopped fiddling with it a while ago because it was working. Then I
found out the hard way that it refused to parse files with more than 4
fact docs in them. When I say "refused to parse," I mean it redlined the
JVM until it exploded with a GC error or something.

Anyway, this rewrite seems to fix the issue with 5-fact files
(selinux.rb, specifically). It also introduces a known issue: facts need
to have at least one section with an actual body. This caused it to fail
on ssh.rb, which I fixed by adding some content there. Not really a
problem since facts _should_ have at least one section with a body, but
it's worth noting.

Also included is a new version of the submoduled facter.