fix(validate data id) Fixes data with same id being added to the Collection

Dispatches the error event when data with same id is added.

Plus tests for,
Event being fired when there is duplicate id,
Event not fired when id is unique, and
Duplicate data with same id not added to collectiion