Started defining the public interface for the "Project Manager"

This "Project Manager" (name subject to change) will encapsulate all
the separate pieces, and this interface will be exactly how we interact
with it. Whether it is the interactive command line UI, or a set of
commands determined from a config file/command line arguments, any
desired interaction with the back-end will go through this interface.

This interface should provide the most basic functionality in the
simplest forms, so that any consumers of this interface will have the
most control over what they can do.