Add initial Snowplow tracking implementation

This merge request adds a new Snowplow analytics tracking system to the codebase

Key features include:

  • Tracker: A simple interface for recording events with custom properties
  • Emitter: Handles sending events in the background in small batches to avoid slowing down the main application
  • Storage: Temporarily holds events in memory before they're sent

The system is designed to be lightweight and non-blocking - when you track an event, it gets queued up and sent later without making your application wait. Events are sent in groups of 5 to be efficient with network requests.

An example application is included that demonstrates tracking different types of events, from simple ones without any extra data to complex ones with nested properties. The system follows Snowplow's standard data format, making it compatible with existing Snowplow infrastructure and analysis tools.

Merge request reports

Loading