Atoms
Replaced atom strings and the parse_atom function with an Atom class to avoid having to invoke parse_atom and handle failures in every function that takes an atom as an argument.
This affects a lot of different files, and I think I've fixed all the issues it introduces, but there may still be points where we're passing a string to a function expecting an Atom, so I'm going to leave this open for a short while to double check.
Edited by Benjamin Winger