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.