Change fam_blocking default to True

Based on discussion in #bcfg2, the consensus seems to be that the
behavior provided by fam_blocking = True is the least surprising
of the two options (i.e. the server should not process data until
it is ready).  1.4 seems like a good time to make this change.
Add a --no-fam-blocking command-line argument to bcfg2-server

There is a quirk in the configuration parser where a BooleanOption
with default=True will always return false __unless_ a command-line
option is provided.  Not sure why that's the case, but this is a work-
around
Correctly handle config-file-only BooleanOptions which default to True

In Bcfg2.Options.Parser._parse_config_options, if the "default" of the
option (perhaps set by the config file) evaluates to True, then it runs
the actions associated with the option. Otherwise, it just sets the
option to the default directly with setattr.

Since the default of a store_false action is True, the code will run
argparse's _StoreFalseAction function. Well, _StoreFalseAction, is a
subclass of _StoreConstAction where const=False. _StoreConstAction has a
call method which looks like this:

def __call__(self, parser, namespace, values, option_string=None):
    setattr(namespace, self.dest, self.const)

So it completely ignores the value passed in and just sets the value of
the option to const (i.e. False).

Looking at fam_blocking
{None: _StoreFalseAction(option_strings='fam_blocking',
dest='fam_blocking', nargs=0, const=False, default=True, type=None,
choices=None, help='FAM blocks on startup until all events are
processed', metavar=None)}
start phase 3
fam_blocking config val is True
start phase 3
_parse_config_options: fam_blocking default is True
_parse_config_options: calling argparse.<class
'argparse._StoreFalseAction'> with value True on fam_blocking
_parse_config_options: after calling argparse.<class
'argparse._StoreFalseAction'> fam_blocking is False
after _parse_config_options fam_blocking is False
after phase 3 fam_blocking is False
after phase 4 fam_blocking is False
end of parser fam_blocking is False
CLI init fam_blocking is False

So how to fix it? Define a new Action? That seems like the most direct
approach since the problem really is that _StoreFalseAction does what it
says on the tin, it stores false no matter what.

The new action BooleanOptionAction works like store_true and store_false,
except that it stores the value that was passed in, or the default if there
was no value passed in.
Use setdefault instead of a conditional
Merge pull request #180 from fennm/default-fam_blocking-to-true

Default fam blocking to true