provide access to manually trigger member behavior
add dedicated formatting module
add new AtomList type with C++ support

implemented in Python this time around. It's much simpler this way, and
if performance is critical, use an un-typed list.
use the formatting module
make Atom objects weakrefable by default