Project Template (v2)

This PR contains an updated version of the Project Template support based on the latest JSON schema.
It is re-using existing Kubernetes structs and the transformation process is independent from the the data structures. 
You shouldn't use constructors like this - constructors are "New<thing>(inputs) <thing>".  Templates don't need to know anything about JSON.