Roll in changes included in CHAMP 5.0 Frogger

Signed-off-by: Drew <drew.cooper@sfcta.org>
1. Networks now support complex Y:\networks structure.  User defines base drive, and subdirectories for projects, plans, and seed data.  NetworkWrangler looks in these subdirectories to find the project.

2. All projects should now included __init__.py.  Because it defines the champVersion, champVersion.txt is no longer needed, and getProjectVersion is no longer implemented in subclasses.

3. getNetTypes is a new function to check for the network a project should be applied to.  __init__.py for each project should contain a function 'networks' that returns a list of network types.
Signed-off-by: Drew <drew.cooper@sfcta.org>
1. Updates to handle new Wrangler subdirectory specifications

2. Remove getProjectVersion, which is now implemented in Network

Signed-off-by: Drew <drew.cooper@sfcta.org>
Class to implement 'plans'.  Takes same base directory and type subdirs as Network, plus tag and tempdir.  These are necessary because this class checks out projects in order to call the getNetTypes function and return a list of projects of a user-specified type.

A 'plan' is defined by a specification file with two columns.  The first is the name of the project, and the second is the project type: 'plan' or 'project'.  This class reads the spec file, builds a list of projects to be included, and asks the project what type of networks it belongs to.

listOfProjects allows user to get a list of projects for a specified network type.

Signed-off-by: Drew <drew.cooper@sfcta.org>
1. Update to include base dir and subdir specifications implemented in Network.

2. Removes getProjectVersion, now implemented in Network

Signed-off-by: Drew <drew.cooper@sfcta.org>