Project Template

This is an WIP of the Project Template work.
The code below define the Project structs and implement parameters substitution for the JSON.

**Changelog**

* Make getting `Parameter` more effective by converting the `Parameters` to Hash
* The `PValue#Substitute` function now modifies the value of itself
* Added `ServiceLinks` to `SubstituteEnvValues`
* Added `rand.Seed` to `ProcessParameters`
* Added godocs
* Added `ServiceLinks` resolving in terms that environment variables exported by the ServiceLink are copied into target service.
I was looking into that (https://github.com/GoogleCloudPlatform/kubernetes/blob/master/pkg/api/types.go#L62). I don't think they are using the *List objects as you describe, they still have arrays defined. The *List objects seems more like a generators for the 'list' operations in k8s API.