fix(tooltip): unbind element events on scope destroy

Closes #1339
Closes #1346
Closes #1400
refactor(alert): move logic to controller & add tests

 * Add missing tests that `close` button is actually visible
   Tests were passing even if link function was empty.