Add support for a project resource

This is an initial pull request to add support for a Project resource.  

The Project resource is not scoped by Kubernetes namepace, but it's used to reserve a Kubernetes namespace for origin users.  A project can be created to associate with an existing Kubernetes namespace, or the namespace is taken from the Project id.  This is limited API support to do basic CRUD operations.  There is no Watch support at this time.  Project has limited metadata with more to follow based on UX input.
The delete error cases that you refer to are done in the registry tier, see TestEtcdDeleteProjectNotFound, and TestEtcdDeleteProjectError in etcd_test.go.

At the REST tier, the RESTStorage interface is just validating that it calls a registry.  The delete interface returns a (runtime.Object, error) tuple, and so in the case where the registry throws an error because project does not exist, the error is checked, and the right thing is done up the stack, and the runtime.Object is ignored.