Basic Perforce provider

Should look and feel like the other SVN/HG/etc... providers.  I had to add a few Perforce specific parameters and support for Workspaces.  I may need to enhance the use of Workspaces later, but this should get most Perforce users started.
I could use this and drop the p4 bit.  However, I should be consistent; Perforce users are used to setting p4port, p4user and p4client.  So I could call them user, client, port.