Carousel v2 keyhandlers should only respond to own align events

Carousel v2's keyhandlers use align events to set the active index of
the carousel, either before or after alignment has occurred. Event
propagation is not stopped, to allow client code to listen to them too.

But the keyhandlers do not check that the event has come from the
carousel to which they are attached. This means that if one carousel
is contained within another, the keyhandler of the parent is triggered
by alignment events from the child.

This commit fixes the bug by checking the source of each alignment event.
It also adds one test for each keyhandler which expose the original bug.
Merge pull request #141 from fmtvp/carouselkeyhandlerfix

Carousel v2 keyhandlers should only respond to their own align events to allow nesting of carousels.
The HorizontalCarousel is deprecated in favour of the newer Carousel which supports both horizontal and vertical orientations.
Removing noshade attribute on HR tag; can apparently cause device issues (see GitHub pull request #146).
Merge branch 'master' into remove-circular-dependencies
To work-around a bug in webkit (https://bugs.webkit.org/show_bug.cgi?id=68072), set the null dimensions and visibility hidden, instead of using display:none
Merge pull request #150 from sergiopanseri/TVPJSFRMWK-1918

To work-around a bug in webkit (https://bugs.webkit.org/show_bug.cgi?id=...
Added isComponent() function to Widget and an override in Component.

Refactored Widget.getComponent() to use isComponent() and remove the circular dependency between Widget and Component.
jsHint fixes.
Merge branch 'master' into remove-circular-dependencies