Refactor global gaTrack function. Bug 896001.

- Takes a single array of event data (instead of an array of arrays).

- Only sets hitCallback/setTimeout if a callback exists.

- Existing newsletter JS only sets callback for last event track.

- Existing newsletter JS tracks both new subscriptions and unsubscriptions.

Working on the assumption that hitCallback fires after *next* tracking
event, not after all pending events. Needs to be tested on demo server.