Lock Argument Fix

When some arguments types are used (eg Symbols), the lock mechanism fails to calculate the same lock key in the client (before queue) and in the job (around perform).

This is because of the difference between the encoding/decoding for passing arguments to jobs and the `to_s` inspect method used to construct the lock key.

I switched the lock key construction to use `Resque.encode` instead of `to_s`.

Test included.