cleaning up OptionalBackendPackage a tiny bit

 - check for `if config is not None` before the try/except/pass adds
   nothing, just makes it less readable
 - much clearer to handle of the default value of the `install` variable
   with the base class and not nested in a try/except of the
   `get_config` method (and even duplicated outside of the try/except)
 - the `force` attribute (only used for BackendAgg right now it seems)
   should also have a more prominent default state in the base class
   rather than in just one subclass
move general check() method of optional backend to base class

also split up the if/else in 3 branches to show a separate message if an
configuration file backend opt-out was overridden by a forced backend
install
replace checking of configuration of optional backends in overridden check() methods by a super() call
refactoring/separating backend checks for config file/dependencies

 - config check is handled handled in optional backend base class and
   calls separate dependency check
 - dependency check is an empty stub in base class and can be overriden
   in subclasses
update list of gui backends in config template