Updating json to return self.conf to avoid race condition

Hey, we ran across this bug when making a custom build script.

What happens is `Builder.prototype.json` gets called multiple times, and occasionally the `self.conf` [gets overwritten after the callback happens](https://github.com/component/builder.js/blob/master/lib/builder.js#L370). That means that the closured [var for `conf`](https://github.com/component/builder.js/blob/master/lib/builder.js#L559) sometimes differs from `self.conf` when actually building the file. 

This is a small patch to ensure that even if the conf file gets read multiple times, it will return the same conf.

I updated the ejs case to work asynchronously, it fails with the current build but passes with the patch.