Support for multiple projects in one file

Now multiple project classes (decorated with @project)
may be defined in a single "project file".

At least one project class's __name__ must match
the filename, as before.

Added additional validation logic.
Renamed add_project_dir -> add_project_file.