feat: add second param to tryPush to allow manually specifying extensions
This is required so that a user can specify custom extension metadata like
user timestamps. As part of this, DataTrackExtensions and friends are
now part of the public api interface.