Separating the map_args functionaliy from redis_key

Separating the map_args functionality away from redis_key method in order to allow the user to easily override the hashed args.

For example, I have a job that accepts certain information about the original user:

  def self.perform(approval_id, approver_id, approver_ip)
    ...
  end

But I want the job to be unique only by the approval_id parameter.  The solution after my change would be to simply override map_args:

  def self.map_args(args)
    args[0]
  end