Hooks for adding/removing tags

- added onTagAdded that is triggered when adding a new, unique tag
- added onTagRemoved that is triggered when a tag is removed from the collection
added hooks before push/remove of tag
refactor when calling tagsManager with string
added 2 more hooks for when the input field is hidden/shown
more hooks

added onTagAdded and onTagInputHide
examples for onTagInput{Hide,Show}
Merge in changes with hooks