Balancer Code Cleaned Up, ElementGroup renamed to ChemicalGroup
Implemented Error-Checking in ChemicalGroups

ChemicalGroups now check to make sure that they're getting valid input.
Also, a ton of other small changes that are mostly readability
improvements (ie, renaming variables).