feat(core): Implements Data Mutation Block

This commit adds the property `APContactMutationBlock mutationBlock`.
That block is called after an item is added to the contacts array.
The current contact and the contact list are passed to the block to
give a the developer a chance to mutate the data.
Merge branch 'feat-mutation-block'