Underscore as a dependency

Hey there!

Well, there are a few things here, and I actually messed up this PR, by changing my mind in the middle of the process.

My initial point was that underscore wasn't included as a dependency in the package.json - though it was a dependency.

I then realized that you were only using underscore for `isString` and `isNumber`, which are really trivial and short to implement, and therefore, don't really make up for including a big lib such as underscore in this tiny module (even if they couldn't in this context be replaced by the builtin `instanceof` - IDK about this, but I assumed there was some reason to use underscore's functions). *See [its source](https://github.com/jashkenas/underscore/blob/1.5.2/underscore.js#L996) if you're curious.*

So I ditched underscore and added a general custom function to do the exact same thing.

I also made a commit transitioning your main module to strict mode, linting your code and using nodejs standard [`util.inherits`](http://nodejs.org/docs/latest/api/util.html#util_util_inherits_constructor_superconstructor) rather than the deprecated `prototype.__proto__` method.

I know most of these changes are kind of too opinionated and that I can be annoying with these sort of things, but please consider these changes and feel free to comment/cherry-pick.

**The only crucial thing would be to add underscore as a dependency - which is the first commit.**

Thanks and cheers!