Added record() functionality to accept dynamic names

In response to https://github.com/quantopian/qexec/issues/3142

Added functionality for record to accept positional args of the form (str1, value1, str2, value2, ... ) before the keyword arguments. This enables the user to record values with names defined by dynamic strings rather than hardcoding.

This PR is a precursor to a qexec PR which enables full functionality of this feature through the API. I'll submit the qexec PR as soon as this PR has been merged.