Reaction refactoring

I'm made a couple of passes through the work Sylvain has done to refactor how the reaction types and rates are handled. There is an API changed at the KineticsEvaluator level, which is fine because we were passing unnecessary stuff anyway.

There's probably still some white space and consistency changes I'll do, but this should happen soon so I wanted to at least make it public.