Require npm version which supports `^` specifier

* The only problem in [this error](https://travis-ci.org/request/request/builds/38507557) is that npm v1.2 doesn’t support `^` version specifier. It's not the problem of Node v0.8 itself. So I added `before_install` command to install the latest version of npm before installing the dependencies of request.
* This change requires the users of this module to use npm >= 1.4.3. So I updated [`engines`](https://www.npmjs.org/doc/files/package.json.html#engines) in package.json and added [`engineStrict`](https://www.npmjs.org/doc/files/package.json.html#enginestrict) field.

After merging this PR, we can also merge #1189.