refactor(tooltip): lazily evaluate placement, delay

There's no need for an observer here because these values are only used
on initialization of the tooltip.
refactor(tooltip): remove observer for triggers

This change fixes the usage of the tooltip directive with AngularJS
1.3.1 when no trigger attribute is used.

BREAKING CHANGE: tooltip/popover trigger is no longer a watched
attribute.
This affects both popovers and tooltips. The triggers are now set up
once and can no longer be changed after initialization.
fix(tabs): make tab links keyboard accessible

Fixes #2226
Fixes #2290
Closes #2870
Closes #2304
fix(tooltip): evaluate appendToBody on init

This wasn't working properly with the location change code
(lines 305-314) because the observe call happens asynchronously after
the linking function has completed.

Hence, the locationChangeSuccess wasn't being set up unless the global
tooltip option's appendToBody option was set to true.

Closes #2921
fix(tooltip): remove child scope requirement

tt_ scope variables are now in the ttScope which is specific to each
tooltip directive (multiple tooltip directives can now run on the same
element).

This allows tooltips to be used alongside any directive that may or
may not require different scope types.

Closes #1269
Fixes #2320
Fixes #2203
fix(tooltip): memory leak on show/hide

Create a new child scope and retain a reference to it so that it can
be destroyed when the tooltip DOM is removed.

Fixes #2709
Closes #2919
feat(typeahead): typeahead-focus-first=false (defaults to true)