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...*
In enqueue_at I convert Ruby times into an interval and within enqueue_in I create a DB time from this interval. Using this interval is the best way to to gap any differences between Ruby times and DB times.

@jipiboily this was discussed earlier with @ukd1 and @ryandotsmith, see comment https://github.com/QueueClassic/queue_classic/pull/217#issuecomment-42373995 and following...

I think I implemented the time calculations just as discussed then or do I miss something?