Support for scheduling jobs in the future

I think having the ability to schedule a job for execution after a given point in time is a crucial feature for a background processing system.
At the moment, this is possible with *queue_classic* only by using [queue_classic-later](https://github.com/dpiddy/queue_classic-later), which is quite clunky to use (you need a second database table and a tick process).

So I quickly implemented a very minimal solution that uses the already existing *created_at* column of the jobs table to specify the time by which a job may be executed.

##### Example:

```ruby
# schedule a job in 10 seconds
QC.enqueue_at Time.now + 10, 'Kernel.puts'
# job is not being locked at this point in time
QC.lock # => nil
# when you wait (at least) 10 seconds...
sleep 10
# job can be locked now
QC.lock # => {method: 'Kernel.puts', ...}

# scheduling a job without a time constraint
# works just as it used to
QC.enqueue 'Kernel.print'
QC.lock # => {method: 'Kernel.print', ...}
```

What do you think? Is this feature generally a useful addition? If yes: is the implementation/API ok or would there be a better solution?


*Note: this pull request would need some more work (e.g. documentation) which I would gladly provide/improve, if you decide that you want this feature...*
I would rename this to `test_lock_with_future_job_with_enqueue_at` or something similar. I think it would be make it clearer what is the intent?