Allow access to clues_metadata during jobs perform method

* Added Runtime mixin to provide access to jobs that need it
* Store clues_metadata in a threadlocal dupe
* Merge back data from dupe into original on perform_finish
  or failed
* Updated readme with usage
* cleaned up some specs

Added this to allow us to do things like the following example from the README changes:

```ruby
class PdfGenerationJob
  extend Resque::Plugins::Clues::Runtime

  @queue = pdf_generation
  def self.perform(doc_id)
    doc = Document.find(id)
    clues_metadata[:pdf_generation_strategy] = doc.strategy
    doc.strategy.constantize.new(doc).generate!
  end
end
```

We can then break down our graphs by the strategy used during perform time to see if the job is universally slow or only slow for certain strategies, etc...

Here is a manual verification of this at work.  Define a dummy class like this that injects the clues metadata hash with an environment variable value.

![worker class](http://i.imgur.com/0QMsLJh.png)

Then start two workers with different MESSAGE env variables and make note of their pids.

```
MESSAGE="first worker" QUEUE="test" INTERVAL="0.1" bundle exec rake resque:work &
MESSAGE="second worker" QUEUE="test" INTERVAL="0.1" bundle exec rake resque:work &
```

Open a console and enqueue a few dummy jobs like this:

```ruby
20.times {Resque.enqueue NoOpWorker}
```

Grep the resque-clues logs for the two env var messages and verify they match the worker pids as expected.

Output for worker 1:

![worker one](http://i.imgur.com/xP3aMb7.png)

Output for worker 2:

![worker two](http://i.imgur.com/FkMItoS.png)
FYI.  You are ```to_sym```ing the name here in these methods, but these are all private methods.  This means that you control how these methods are being called, so you shouldn't need to bother.