WIP: Initial implementation of project resource

This PR is intended to show the community an implementation approach consistent with #1017

@erictune - this does not say that at all.

This file has nothing to do with copying fields onto other objects.

This file is a proxy that intercepts requests to persist project-scoped resources to ensure that a few basic criteria are met.  First that the project a resource is associated with actually exists.  Second that all resources that are intended to be project-scoped have a project label that is immutable.

It does not store project objects - there is another RESTStorage for that.
It does not store resource objects in a project - the delegate does that.
It just requires that objects that are intended to be project-scoped meet the project-scoping requirement, which in this case is project exists, and project label is applied and immutable on the resource to be persisted.

I hope that clears any confusion.  The only modification to a project scoped resource is to ensure that label[project]=project.ID is present and immutable.