Simplify the parsing of kineticsFamilies = 'string' options from input file.

Less code, hopefully easier to understand.
Recommended reaction families read as a dictionary, not a function.

With this commit, the recommended.py file in 
RMG-database/input/kinetics/families/recommended.py
should just contain a dictionary, not a function call

recommendedFamilies = {
   '1,2-Birad_to_alkene': True,
   '1,2_Insertion': False,
  }

I'll make a corresponding commit in the RMG-database project.

Other changes:
Reduced code duplication, tidied up comments, and added more 
sanity checks on input, eg. we check that the list is all 
true or all false, not a mix, and we check that all the requested
families can be found in the database (before we just silently skipped them)
and check that all families in the database are listed in the recommended.py 
file as either True or False (in case we forget to add them).
Change the flow control when loading families list.

This is a small change, but it changes the indentation of 
a huge block of code so looks like a big one.
recommendedFamilies list (dict) stored in kinetics database attribute

The loading of the recommendation list has been moved to its own method
because it was getting complicated, and we want to be able to store this
more permanently, even if we aren't going to use it. This will allow us
to interrogate it, and, for example, to export the Java-style database with it.
(is this still going to be neccessarry?)
Export the recommended families list to RMG-Java style database.

Now that we have this data to hand, we may as well preserve it
and pass it along.
Make sure all the families listed in recommended.py are found in database.

Not just the ones listed as 'True.'
Unit test to make sure we get the right exception errors in loadFamilies.

An exercise that showed me how bad I am at making unit tests quickly.