Make PhantomJS an optionalDependency

Hey @behrang, 

I love this task! I want to use it in an internal project for my company, but we don't allow binary npm dependencies for security reasons.

I modified your code to make PhantomJS an optional dependency (and also require [https://github.com/isaacs/node-which](which) as a full dependency). Most people have Phantom installed globally anyway so I think this is a perfectly reasonable modification.

It passes all of the tests, and because I'm not changing functionality, I did not add any additional ones.

Let me know if you can do this.

Cheers,

Arjan