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.