Changing behavior of kineticsFamilies field loading of families.

Now the following options for kineticsFamilies in the input file are allowed:

- When kineticsFamilies field is set to 'default', the RMG recommended families
  are loaded from the database.  This is also selected when the kineticsFamilies
  field is completely missing

- 'all' indicates all families are turned on.

- 'none' means none of the families are turned on.  This is good for debugging.

- A list of families means only those are selected, e.g. ['H_Abstraction','R_Recombination'].
  You can also deselect all but certain families by using the ! flag,
  e.g. ['!Intra_Disproportionation','Substitution_O']

Added additional error raising in rmgpy.data.kinetics in case any of the if/elif
statements fall through when code changes occur.
Set minimal example to 'default' kineticsFamilies.
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.
Merge pull request #195 from connie/master

Change input file's behavior of loading families through `kineticFamilies` field, and various fixes.

There's a lot more error checking now, and the error checking is tested in a unit test!
Correct mispelling of 'Structures' in variable definition.