Fix issue #16.

Issue #16 (and PM2) exposed a bug wherein if we attempted to merge objects with properties of the same name but different types (in this case merging and object into a string) it would fail. This PR ensures we only merge object into objects, overwriting where there's a conflict. Test case included.

The pm2 scenario is also a bug wherein pm2 adds an `env` property to `process.env` containing the original `process.env` values. As a result (and since all environment variables are strings), the result value of process.env.env is the string `[Object object]`, which is a bug.