Catalytic wall refactor

Second refactor of catalytic wall treatment. Replaced old version with a base class and first child, GasRecombinationCatalyticWall. This is, essentially, what the older version did, e.g. N+N->N2. Instead of deriving from NeumannFuncObj, though, we just cache pointers to the objects and call their apply_fluxes method directly in the BCHandler. This makes both parsing and the flux calculation much simpler since, instead of the BCHandler worrying about who's producing and who's being consumed, the CatalyticWallBase child worries about that. The next step will be GasSolidCatalyticWall to support things like N+C(s) -> CN directly, but that's another branch and PR.