BUG: Algo no longer crashes after creating new history column.

Fixes an issue that caused a crash if a user assigned a new column into a
returned history DataFrame.  This occurred because we re-use DataFrames between
history() calls, so the new column caused an index-size mismatch on the next
attempted calculation.

Ideally we would fix this by in-place dropping the columns, but that isn't
supported in pandas 0.12.0, so instead we just return a complete copy of the
frame.  We should re-evaluate this implementation when we're on a more modern
pandas version.
ENH: Added dynamic name functionality to record() API function.

Added the ability to pass *args before the **kwargs so that positional
arguments of the form name, value can be recorded.