Fully support Rails 3.1 adaptors, fix :line info

In most Rails 3.1 adaptors, exec_query() is used more often than
execute(). exec_query() wasn't being monkey-patched by marginalia, so
most queries weren't annotated.

Line info wasn't very helpful before because every request would have
the same line info because the line info was being generated once per
request, not once per query. This change makes it so the call stack is
examined on each query.

Also, make it so components with an empty value aren't included in
commonent. For example, if controller or action isn't set (e.g. during
a rake task) they won't be mentioned at all.
Make tests pass.
Merge pull request #12 from codekitchen/master

add optional hostname and PID components
Merge remote-tracking branch 'airbnb/rails31'

Conflicts:
	test/query_comments_test.rb
Only bump version to 1.1.1
Either instrument execute or exec_query, not both
Revert "Either instrument execute or exec_query, not both"

This reverts commit 20d07f628171abec143fb8f64bba7142f5a0cf42.
Prevent double instrumentation

Some adapters (MySQL most notably) call execute from exec_query,
which results in a double comment being added. Check if a comment is
already appended before annotating with a duplicate.
Version bump