In order to begin publishing our core SDK package to NPM, we will need it to be underneath the @pulumi scope so that it may remain private. Eventually, we can alias pulumi back to it. This is part of pulumi/pulumi#915.
This PR adds a new formalisms at the Resource layer. First all inputs to a Resource are typed as ```Input<T>```. This is either a T, ```Promise<T>``