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
fix(carousel): replaced $timeout with $interval when it was wrong

I had a to tweak a bit two tests since $interval never throws an exception after flushing, hope I did it OK.

Ammend: addresses @chrisirhc critics

Fixes #1308
Fixes #2454
Closes #2776
demo(carousel): mention 0 in interval option

Now an interval of 0 will also stop the carousel.
fix(accordion): make header links keyboard accessible

Closes #2869
feat(typeahead): add focus-first option

Add typeahead-focus-first option to prevent first match from being
focused.

Currently, the first result is automatically focused as you type. Now, set
`typeahead-focus-first="false"` and the first result is *not*
automatically focused as you type.

Closes #908
Closes #2916
fix(tooltip): show correct tooltip on ngRepeat

Thanks to @red-0ne for the test case.

This commit reverts a1b1ec4fe0f4ddaad343b16edb8434ff1614300c
(#2825) .

Fixes #2935
fix(tooltip): remove extra digest causing incompatibility

In Angular 1.3.1, when using tooltips with ngAnimate, this extra $digest
call seems to break ngClass. This is an extra call to ngAnimate and it
shouldn’t be called since the tooltip hasn’t been added to the DOM.

I was unable to create a test case to test compatibility with ngAnimate.

Fixes #2951
Fixes #2959
fix(build): make custom builds on demo site work

Use approach from Twitter Bootstrap. Most of the code is from their customizer.

- use modules in mappings file
- generate concatenated JS
- generate tpl and non-tpl file with banner
- generate zip file for custom builds
- add browser compatibility message
- speed up page by deferring loading of files
- only load the files when needed. Cache them after they're loaded.

Fixes #2960
Fixes #2847
Fixes #2625
Fixes #2489
Fixes #2357
Fixes #2176
Closes #2892
chore(release): 0.12.0
chore(release): Starting v0.13.0-SNAPSHOT
docs(CHANGELOG): fix 0.12.0 header's level

Closes #2975
Merge branch 'master' into datepickerMinMaxRefactor