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)
I like that you are protecting from overwriting the 'reserved' values - I wonder if it might be simpler to store the custom data in a nested hash? That way, there is no way to overwrite the reserved values, and developers won't be surprised when a value they write, isn't written (because they weren't aware that it clashed with a reserved key).

Something like:
```
original[:custom_runtime_data] = clues_metadata[:custom_runtime_data]
```

Haven't thought it through completely. Basically, I think the job should have full acces to *read* all of the metadata, but when it *writes*, it should be constrained to a special bag where it wont conflict with anything.