feature/rate-limit-tracking

This PR is an enhancement to [FLASH-193](https://jira.huit.harvard.edu/browse/FLASH-193) and PR #120. It modifies the client-side tracking so that requests are batched together and sent to the server periodically (every 2 seconds at most) rather than firing immediately. This improves performance and reduces the risk of losing data, which could happen if too many network requests are queued.

@jazahn Can you review this?