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. 
Return target, don't take it as an argument.  You're already taking responsibility for creating the new object, the method signature should reflect it `func(input) output`