Fix #219: Make GroupType an enum

This patch mostly solves #219 by converting GroupType to an enum. Each instance references a set of mmCIF `ResidueType`s, but it still follows the PDB datamodel (e.g. modified amino acids are still HETATM).

It also includes a commit to add `@Override` annotations in many places, which touches many files but doesn't change anything. Please set Eclipse to warn about missing annotations to prevent future missing annotations.