Added base class and object factory template

I added the item base class and its sub classes. Finalized atom,
abd_interface, and coeffs base class and their sub classes. Added an
object factory template which uses single dispatch to get around the
lack of reflection in C++. Added new_instance and copy_instance methods
to all classes that interact with the object factory template.