Implement model-agnostic atom types.

Atom types are stored as strings and only converted to integer codes by
the Compute object (ghost_types field). The conversion is matched to the
requirements of the KIM model.