Move macro recording into ViParser.

This should eliminate the need for the global key manager variable that
tracks the current macro recorder, since everything goes through
ViParser.