allow depends_on to be a job id or a job itself

Other parts of the code (i.e.: the `.create()` method) allow the `depends_on` kwarg to be a `Job` object *or* a job id. This is an attempt to allow that same idea within the `.enqueue_call()` method for a queue. Since this part of the code requires actually knowing the precise redis key for the job that's depended on, my intuition is that a `.fetch()` is the only way to solve this.

I'm not sure if my intuition is right here, but it feels right.
Yeah, `self.job_class` makes more sense than `Job` class because we allow custom job classes. I think checking for string types is a tiny bit nicer because it gets rid of the `not` line 192. But it really doesn't matter that much.

If you can write some test, I'll get this merged. Thanks :)